Es würde mich auch interessieren, ob das nicht doch irgendwie hinzukriegen ist.
http://www.highrez.co.uk/Downloads/InpOut32/
Damit sollte "eigentlich" was zu machen sein, etwa so (quick and dirty):
Code:
//------------------------------------------
// direct parallel I/O using Inpout32.dll
// compile with minGW with:
// path $PATH
// g++ -mwindows -static-libgcc -static-libstdc++ LPT_inpout.cpp -o LPT_input.exe
//
// inpout32.dll muss zur laufzeit im selben verzeichnis liegen wie das executable!
//------------------------------------------
#include <windows.h>
#include <stdio.h>
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
typedef UINT (CALLBACK* LPFNDLLFUNC1)(INT,INT);
typedef UINT (CALLBACK* LPFNDLLFUNC2)(INT); // fuer Input, hier nicht verwendet
HINSTANCE hDLL;
LPFNDLLFUNC1 Output;
LPFNDLLFUNC2 Input; // fuer Input, hier nicht verwendet
// wichtig: hier LPT Adresse anpassen!
INT Addr=0xEC00;
hDLL = LoadLibrary("Inpout32");
if (hDLL != NULL)
{
Output = (LPFNDLLFUNC1)GetProcAddress(hDLL,"Out32");
Input = (LPFNDLLFUNC2)GetProcAddress(hDLL,"Inp32"); // fuer Input, hier nicht verwendet
if (!Output || !Input)
{
MessageBox(NULL,"Problem!","Problem!",MB_OK); // Problem!
exit(1);
}
}
int i=atoi(szCmdLine);
/*
char bla[255];
sprintf(bla,"ist %d",i);
MessageBox(NULL,bla,"bla",MB_OK);
*/
Output(Addr, i);
// fertig
return 0;
}
Ich habe das mal kompiliert und könnte das Executable zusammen mit der inpout32.dll zur Verfügung stellen, kriege es aber hier nicht als Anhang rein (wie geht das?).
Testen kann ich es selber nicht, denn ich habe zwar ein 64bit Windows7, aber keinen LPT mehr.
Grüße von der Katze
Edit:
Zur Bedienung, es wird einfach LPT_inpout.exe BYTE ausgeführt, wobei BYTE eine Dezimalzahl von 0-255 sein kann, das ist binär ja 00000000 bis 11111111, und damit werden die Ausgangsports des LPT dann geschaltet. Wichtig ist, im Code die richtige Adresse des Ports anzugeben, man kann die in der Systemsteuerung herausfinden.
Lesezeichen