BT2k
LOGO

Bücher aus eigener Feder
FAQ
- -

H.-J. Berndt / B. Kainka
Messen, Steuern und Regeln mit Word und Excel
VBA-Makros für die serielle Schnittstelle, 3., aktualisierte Auflage.

Völlig neu bearbeitete 4. Auflage aus 2022 mit 64-Bit-DLL und ZIP-Archiv zum Download von dieser Seite.
Reprint des Textes der 3. Auflage aus 2001 mit 64-Bit-DLL und ZIP-Archiv zum Download von dieser Seite.
Ausverkauft: Franzis-Verlag GmbH, 85586 Poing, 2001 ISBN 978-3-7723-4094-9

Fragen und Antworten

Kann ich ohne Microsoft Office die Makros ausprobieren?

Was hat sich in der 2. Auflage geändert?

Kann ich die RSAPI.DLL auch unter Delphi benutzen?

Wie benutze ich die DLL unter C/C++?

Funktioniert die DLL unter Windows NT4?

Gibt es ein Update zur RSAPI?

Laufen die CD-Makros auch mit Office 2000?

Was sind das für Dateien im CD-Verzeichnis Office97 der 2. Auflage?

Was hat sich in der dritten Auflage geändert?

Probleme mit dem MAX 232

Probleme mit TIMEOUT und READBYTE unter Windows 2000/XP/Vista/Win7

Gibt es das Buch wieder? - Ja!

Laufen die Makros in Office ab 201x und auf Windows 64-Bit?



Kann ich ohne Microsoft Office die Makros ausprobieren?
Ja. Auf der CD befindet sich WordView95. Damit können die DOT-Dateien für Word 95 gestartet werden:
- Kopieren des CD-Verzeichnisses "WORD7" auf die Festplatte.
- Kopieren des CD-Verzeichnisses "WORDVIEW" auf die Festplatte (Unter "ADDON32" der CD). 
- In beiden Verzeichnissen die alte RSAPI durch die neue DLL ersetzen. 
- WordView.exe aufrufen. 
- Aus dem Verzeichnis "Word7" auf der Festplatte z. B. die Datei "RTS.DOT" aufrufen. 
- Beim Drücken der Schaltfläche "Leitungen Schalten" wird das Makro gestartet. 

Was hat sich in der 2. Auflage geändert?
Die 2. Auflage berücksichtigt auch Word97 und Excel97. Insbesondere bei Word hat sich einiges geändert. War Word95 nur die 32bit-Variante von Word6 unter 16bit, ist Word97 aus Programmiersicht völlig anders. VBA gilt nun einheitlich, für alle Office-Anwendungen. Somit fällt WordBasic weg. Es wird nur noch bei importierten Dokumentvorlagen unterstützt.
Auch die 32-Bit-RSAPI.DLL wurde etwas überarbeitet. Die Probleme von OpenCom unter NT4 konnten beseitigt werden.

Kann ich die RSAPI.DLL auch unter Delphi benutzen?
Die DLL wurde in erster Linie  für BASIC-Anwendungen erstellt. Der ernsthafte Delphi-Entwickler findet überall im Internet und in Fachzeitschriften weit bessere Komponenten, die besser in die VCL-Umgebung passen. Dennoch enthält die RSAPI.HLP im Index ein Stichwort Delphi. Dort werden einige Deklarationen vorgestellt.

Wie benutze ich die DLL unter C/C++?
Die DLL wurde in erster Linie  für BASIC-Anwendungen erstellt. Der ernsthafte C/C++-Entwickler findet im Internet und in Fachbüchern Hinweise und Quelltexte zur seriellen Schnittstelle. In Kapitel 10 wird beschrieben, wie eine DLL erstellt wird.
Die Einbindung von DLLs unter C kann auf zwei Arten erfolgen:

Statisches Einbinden der LIB-Datei.
Die einfache Methode. Setzt voraus, daß die LIB-Datei verfügbar ist oder generiert werden kann. Entsprechende Tools findet der Entwickler bei seiner Programmierumgebung. Die RSAPI.DLL wurde unter Borland C 4.5 erstellt. Dieser Compiler unterstützt 16bit- und 32bit-DLL-Entwicklung. Die 16-Bit-DLL und die 32-Bit-DLL sind völlig andere Programme.

Dynamisches Einbinden mit den API-Funktionen LoadLibrary/FreeLibrary.
Dies funktioniert u. a. unter BC4.5 und VC5 wie folgt

#include <windows.h>
#define THEDLL "RSAPI.DLL"
HINSTANCE hDLL;

mes(char *s)
{MessageBox(GetActiveWindow(),s,"DLLTEST",MB_OK|MB_ICONINFORMATION);
 return 1;
}

loaddll(char *name)
{char s[256];
 hDLL = LoadLibrary(name);
 if (hDLL == NULL)
 {wsprintf(s,"%s nicht gefunden.",name);
  MessageBox(GetFocus(),s,"ERROR",MB_OK|MB_ICONSTOP);
  return 0;
 }
 return 1;
}

rts(int i)
{ typedef UINT (CALLBACK* LP1INT)(UINT);LP1INT p; 
  p = (LP1INT)GetProcAddress(hDLL,"RTS");return p(i);
}

opencom(char *s)
{ typedef UINT (CALLBACK* LP2INT)(char *);LP2INT p;
  p = (LP2INT)GetProcAddress(hDLL,"OPENCOM"); return p(s);
}

readbyte(void)
{ typedef UINT (CALLBACK* LP2INT)();LP2INT p; // Funktionszeiger
  p = (LP2INT)GetProcAddress(hDLL,"READBYTE"); return p();
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR
lpCmdLine,int nCmdShow)
{int i;char s[256];
 if(loaddll(THEDLL))
 {i=opencom("COM2:19200,N,8,1");
   wsprintf(s,"OpenCom COM2:19200,N,8,1 liefert: %d",i);
   mes(s);
   i=readbyte();
   wsprintf(s,"Readbyte liefert: %d",i);
   mes(s);
   FreeLibrary(hDLL);
   return 1;
 }
 return 0;
}

Dieses C-Programm zeigt nach dem Start zwei Meldungen.



Funktioniert die DLL unter Windows NT4?
Ja, aber...Windows NT4 steht nicht immer zur Verfügung. Darum wurden nur kurze Tests auf dem NT-Rechner durchgeführt. Wichtiger Hinweis: Beim Öffnen der Schnittstelle COM2 muss es z.B. heißen: 
OPENCOM "COM2:1200,N,8,1". Zu beachten ist der Doppelpunkt nach COM2. Im Buch steht hier meist ein Komma. Windows 95/98 verzeiht dies, NT aber nicht. Mit dem Komma würden die nachfolgenden Parameter ignoriert. Alle externen Funktionen müssen groß geschrieben werden. Das "ByVal" in der Deklaration darf unter VBA niemals vergessen werden.

Gibt es ein Update zur RSAPI?
Ja. Inzwischen gibt es verschiedene Versionen der RSAPI. 
1. Die 16-Bit-DLL aus der 1. und 2. Auflage (unverändert).
2. Die 32-Bit-DLL Version 1.00 aus der 1. Auflage.
3. Die 32-Bit-DLL Version 1.10 aus der 2. Auflage.
4. Die 32 Bit-DLL Version 1.20 als Update für NT4-Anwender.
5. Die 32-Bit-DLL Version 1.22 der 3. Auflage
6. Die 32-Bit-DLL Version 1.701 als Ergänzung in 2007 zur 1.22
7. Die 32-Bit-DLL Version 1.710 als experimentelle Ergänzung zur Reprint-Version des Buches 2017.
8. Die 32-Bit-DLL Version 1.76 mit veränderter Hardware-Suche nur für Wine unter Linux
9. Die 64-Bit-DLL Version 1.80 für Office in der ebenfalls 64-Bit-Version der 4. Auflage des Buches

Ein Update von Version 1.00 auf 1.20 ist nur für den Einsatz unter Windows NT4 erforderlich.
Version 1.20 (59 301 Bytes) behebt Fehler unter NT bei IX_OPENCOM, FINDHARD, OPENCOM, INIT, INITSIOS, INITZELLE.


Laufen die CD-Makros auch mit Office ab 2000?
Ja. Office 2000 hat nun VB6 integriert. Es unterscheidet sich in der Programmierumgebung kaum von seinem Vorgänger 97. Die Sicherheitseinstellungen haben sich etwas verändert, sie können nun in drei Stufen eingestellt werden. Die Stufe 2 (mittel) entspricht der 97er Einstellung, bei der jedesmal gefragt wird, ob die Makros aktiviert werden sollen. Diese Einstellungen erreicht man im Menü über Extras / Makro / Sicherheit.


Sicherheitseinstellungen in Word 2000

Die Makros in den CD-Verzeichnissen WORD97 und EXCEL97 sollten also funktionieren, wenn sie geladen werden. Die RSAPI.DLL muss natürlich installiert sein. 



Was sind das für Dateien im CD-Verzeichnis Office97 der 2. Auflage?
Es handelt sich um Form (*frm) -Dateien und deren binäre Beschreibungsdateien (frx). Da Office97 VB5-Forms unterstützt, können diese auch in VB5, Word97, Excel97 importiert werden. Es handelt sich dabei um VB5-Lösungen der WordBasic-Makros aus dem Buch. Im VBA-Editor kann unter Datei / Datei importieren z. B. der AIN-Test importiert werden. Das Projektfenster zeigt dann unter Formulare "AinTest". Ein Doppelklick öffnet das Formular. Mit F5 wird es gestartet.


Was hat sich in der dritten Auflage geändert?
Die dritte Auflage läßt Wordbasic fallen, da es ab Office 97 nicht mehr von Word benutzt wird. Dadurch werden die Beispiele einheitlicher und übersichtlicher. Auch ist nun der Austausch von Moduln zwischen den einzelnen Anwendungen problemlos möglich. 16bit-Windows wird nicht mehr unterstützt. Die aktuelle Buch-DLL läuft unter Win 95/98/ME/NT/2000.


Probleme mit dem MAX 232
In Abbildung 6.17 der dritten Auflage sind zwei Leitungen vertauscht. An Pin 8 des MAX 232 sollte DTR, an Pin 14 CTS angeschlossen sein. Hier die richtige Abbildung.



Probleme mit TIMEOUT und READBYTE unter 32Bit
Win2000/XP/Vista/7

Unter Win2000 und XP wurden ab und zu Probleme gemeldet. Nach etwa 10 bis 30 Minuten liefert READBYTE nur noch -1 oder die Schnittstelle reagiert überhaupt nicht mehr. Auch andere sehr schwer reproduzierbare Fehler wurden gemeldet. Um diese Probleme aus der Welt zu schaffen, wurde die DLL in eine andere Sprache übertragen, da eine ähnliche DLL, die in dieser Sprache formuliert ist, diese Probleme nicht zeigt. Hier ist eine undokumentierte Version 1.701 dieser DLL, die nicht intensiv getestet wurde und nur für den experimentellen, privaten Einsatz.

REPRINT 2017/2019 der 3. aktualisierten Auflage


Gibt es das Buch wieder? Ja.
Seit 2017 gibt es einen Reprint des Textes aus 2001 der 3. Auflage dieses Buches als eBook/Taschenbuch. Die Buchdateien der CD sind als ZIP-Datei verfügbar. Die EXE-Datei entpackt die Dateien in ein Verzeichnis nach Wahl, wenn das Password entsprechend dem gegebenen Hinweis benutzt wird. Vervielfältigung nur als persönliches Backup (Private).

Die Auflage von Franzis ist ausverkauft und wird nicht wieder aufgelegt. Es gibt ab und zu noch ein Gebrauchtexemplar bei amazon.de oder man sucht nach ISBN 978-3-7723-3109-1.



Laufen die Makros in Office ab 201x und Windows 64Bit?
Ja, aber. Seit Office 2010 sieht die Oberfläche völlig anders aus. In Bezug auf Makros und deren Funktionalität hat sich jedoch wenig geändert. Der Zugriff wurde vermutlich aus Sicherheitsüberlegungen erheblich erschwert. Hier einige kurze Hinwiese: VBA ist versteckt. Im Office-Menü Datei/Optionen/Menüband anpassen im rechten Teil den Haken bei Entwicklertools setzen. Im jetzt sichtbaren Menu Entwicklertools die Makro-Sicherheit entsprechend einstellen und die Anwendung neu starten. Exceldateien als *.xlsm speichern, da sonst die Makros fehlen. Falls auf Grund von Restiktionen die DLL nicht in das Windowsverzeichnis kopiert werden kann, lässt sich die DLL von beliebiger Stelle aufrufen, wenn dieser Pfad in jeder Deklaration richtig angegeben ist: Declare Sub DELAY Lib "E:\Test\rsapi.dll" (ByVal x%)

Die RSAPI zur 3. Auflage ist eine 32-Bit-DLL und funktioniert unter 64-Bit-Windows, wenn Office in einer 32-Bit-Version zum Einsatz kommt. In dieser Kombination konnten keinerlei neuen Problme unter Win7/8/8.1/10 festgstellt werden.

Im Herbst 2022 ist die 4. Auflage dieses Titels erschienen. Die dazugehörige neue DLL ab Version 1.8 ist eine 64-Bit-DLL für Anwendungen wie Word & Excel in einer 64-Bit-Version.



.
Startseite Bücher Software Digital RTV Musik Kontakt

Für Inhalt und weitere Verzweigung externer Links sind die Betreiber der dortigen Seiten verantwortlich - H.-J. Berndt