In einer Headerdatei USB_Interface.h kommt bei den folgenden Zeilen:
#ifndef __AFXWIN_H__
#error include \'stdafx.h\' before including this file for PCH
#endif
folgender Fehler:
[C++ Fatal Error] USB_Interface.h(12): F1003 Error directive: include \'stdafx.h\' before including this file for PCH
Hab dann die stdafx.h eingebunden! Hat nichts gebracht kommt trotzdem noch der selbe Fehler!?
Was muß ich denn da machen!?
Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge
Statt "USB_Interface.h" und "USB_Interface.dll" zu verwenden, kann man auch "USBDLL.h" und "AN21xx.dll" verwenden (mit einem
extern "C"
wie in "USB_Interface.h" "verfeinert" um C++ dekorationen zu vermeiden und der verwendung von "dllimport" statt "dllexport").
Was fehlt, ist eine import-lib, die aber für "USB_Interface.dll" ebenfalls fehlt. Da aber mit "USB_Interface.cpp" diese DLL nachbildbar ist, lässt sich die lib einfach erzeugen. Für "AN21xx.dll" lässt sich das mit den genannten mitteln (link1 und link2) erzeugen oder evtl. direkt (weil das eine borland DLL ist) aus "AN21xx.dll" mit borland-tools (hierzu kann ich nicht viel sagen).
Der aufruf der funktionen ist jeweils identisch, außer für "SetAllDisabled". Das taucht aber außer in "USB_Interface.h" nirgendwo auf und ist somit vermutlich überflüssig. Die funktionen "ReOpen" und "CloseLib" sind unnötig, denn diese betreffen das dynamische (runtime) laden der DLL und das wäre durch die loadtime anbindung per import-lib schon erledigt.
Eine probeweise verwendung der generierten import-lib in VC++ war nicht erfolgreich, weil bei der (erforderlichen) deklaration __stdcall der linker den importnamen so verändert, dass die funktion nicht gefunden wird, bei "_cdecl" hingegen der stackpointer beim aufruf falsch gesetzt wird. Hierzu näheres hier.
mr.escape