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