BT2kLOGO
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.
Franzis-Verlag GmbH, 85586 Poing, 2001 ISBN 978-3-7723-4094-9
Suche nach ISBN 978-3-7723-3109-1 oder dieser Link Messen, Steuern und Regeln mit Word und Excel

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 noch - irgendwie?



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 vier verschiedene Versionen der RSAPI. 
1. Die 16bit-DLL aus der 1. und 2. Auflage (unverändert).
2. Die 32bit-DLL Version 1.00 aus der 1. Auflage.
3. Die 32bit-DLL Version 1.10 aus der 2. Auflage.
4. Die 32bit-DLL Version 1.20 als Update für NT4-Anwender.

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. Das Update kann per E-Mail angefordert werden. 


Laufen die CD-Makros auch mit Office 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 dieser DLL, die nicht intensiv getestet wurde und nur für den experimentellen, privaten Einsatz.


Gibt es das Buch noch - irgendwie?
Die Auflage ist ausverkauft und wird wohl nicht wieder aufgelegt, so weit hier bekannt. Nachfragen dieser Art bitte an den Verlag: Franzis'. Oder man versucht es über Gebrauchtexemplar bei amazon.de oder sucht nach ISBN 978-3-7723-3109-1.

.
Startseite Bücher Software SatDX Musik Kontakt

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