Also ich muß hier doch mal was klar stellen.

Eine DLL ist kein Treiber

Eine DLL sind aus gelager Funktionen die man auf rufen kann.

#include "inpout32.cpp"

wir nie Tun man kann keine cpp dateien include sondern nur header sprich .h dateien.

Wie komme ich an funktionen einer dll:

Es gibt zwei möglichkeiten dynamisch oder statisch.
Die Statische ist das Header file einbinden "incude...."
Und dem linker dann das entsprechende lib file angeben.

Problem an dieser metode ist das das programm bei nicht da sein der
dll einfach nicht starten und man nicht darauf reagieren kann und man das h und das lib file braucht

das dynamische laden:

Code:
extern "C"
{
	typedef long (__stdcall *Cherry_Data)(PKBVCardRecord);
	typedef long (__stdcall *Cherry_Init)(void);
	typedef void (__stdcall *Cherry_Close)(void);
	typedef long (__stdcall *Cherry_GetErrorDesc)(long,LPSTR,long);
}
Erzeugen der Funktions Typen

Code:
Cherry_Init         G801501_Init;
Cherry_Close        G801501_Close;
Cherry_Data         G801501_ReadCardRecord;
Cherry_GetErrorDesc G801501_GetErrorDesc;
Erzeugen von Funktionspointer

Code:
	m_hCherryDll = LoadLibrary("G8015012.dll");

	if (m_hCherryDll != NULL)
	{
		G801501_Init =  (Cherry_Init) GetProcAddress(m_hCherryDll, "G801501_Init");
		G801501_Close =  (Cherry_Close) GetProcAddress(m_hCherryDll, "G801501_Close");
		G801501_ReadCardRecord =  (Cherry_Data) GetProcAddress(m_hCherryDll, "G801501_ReadCardRecord");
		G801501_GetErrorDesc =  (Cherry_GetErrorDesc) GetProcAddress(m_hCherryDll, "G801501_GetErrorDesc");
		if (NULL != G801501_Init)
        {
Zuweisen der Funktionspointer zu den adressen in der dll.

Code:
long result = G801501_ReadCardRecord(&CardRecord);
Funktionsaufruf

Das beispiel beruht nicht auf der InpOut.dll sonder einer ander der Code war halt gerade greifbar.

Die Dll installiert einen Treiber bei NT Systemen also wird die nur laufen wenn man genung rechte auf dem system hat.

Aufpassen mit der Dll kannst im ganzen Io bereich von windows rum schreiben. das heist richtig müll machen (BlueScreen)

Den die DLL tricks den HAL aus.

Wenn du normale Serial komunikation machen willst und nicht den Parallel port Leitungsweise ansteuern willst brauchst du die dll nicht.

Was hast du genau vor.

Gruß