"WinIo" DLL / skrivning til printerport
Jeg sidder og arbejder med at skrive til printerportens control register eller, Toggle pin 14 / 17, der er i forbindelse med et I/O kort jeg leger med.Jeg har fundet en Dll der WinIo.dll, der skulle kunne hjælpe mig med dette.
http://www.internals.com/utilities_main.htm
men jeg kan ikke rigtig få det til at virke.
Der er et lille test program med sammen med DLL filen, og det virker, så det er mig der koger rundt i det.
Har siddet og ledt efter eksmpler på nettet og har læst i C++ grundbog af Henrik Tange.
DLL filen bliver læst Explicit.
Mit spørgsmål lyder lidt på Filen læses rigtig nok ind, da det er første gang jeg arbejder med DLL filer.
Koden:
//*************** Header fil ************************
public:
typedef bool (*MYPROC)(WORD,DWORD,BYTE);
typedef bool _stdcall (*MYPROC_1)();
typedef bool _stdcall (*MYPROC_2)(PSTR, bool);
typedef bool _stdcall (*MYPROC_3);
//**************** CPP Fil ****************************
int Get_test_1 = 0; // Test værdi for debug
int Get_test_2 = 0; // Test værdi for debug
int Get_test_3 = 0; // Test værdi for debug
bool CTRL_1 = true; // Test værdi for debug
bool CTRL_2 = true; // Test værdi for debug
bool CTRL_3 = true; // Test værdi for debug
bool CTRL_4 = false; // Test værdi for debug
bool Driver_1 = false; // Test værdi for debug
WORD Test_1 = 0x37A; // Control register addresse
DWORD Test_2 = 0xFFFFFFFF; // Værdi til control register
BYTE Test_3 = 0x01; // Hvor mange bytes der skal skrives
// Skulle være måden at læse DLL explicit
MYPROC Funktion;
MYPROC_1 Initialise;
MYPROC_2 Driver;
HINSTANCE GetDll; // windows defineret type
GetDll = LoadLibrary ("WinIo.dll"); // DLL loades over i Handle
if (GetDll == NULL)
CTRL_1 = false ;
// Driver funktion hentes
Driver = (MYPROC_2) GetProcAddress (GetDll,"InstallWinIoDriver");
if (Driver == NULL)
Get_test_1 = 1;
// Initialiserings funktion hentes
Initialise =(MYPROC_1) GetProcAddress (GetDll,"InitializeWinIo");
if (Initialise == NULL)
Get_test_2 = 1;
// Skrive funktion hentes
Funktion=(MYPROC) GetProcAddress (GetDll,"SetPortVal");
if (Funktion == NULL)
Get_test_3 = 1;
// Control værdien ændre sig til 1 ved kørsel
CTRL_4 = Driver("D:\Egne programmer\I2C_BUS\WinIo\WinIo\Release\WinIo.sys",Driver_1);
// Intet liv her
CTRL_1 = Initialise();
// Intet liv her
CTRL_2 = Funktion(Test_1,Test_2,Test_3);
//************************************************************
Håber der er nogen der kan hjælpe