Chce napisać program, który ustawia stany poszczególnych bitów danych (D0-D7) portu równoległego. Podłączyłem sobie miernik do pinu 2 i masy (D0). Za pomocą NTPort czy WinIO wszystko działa, ustawiam stan wysoki, potem odpalam mój program.
HANDLE hLPT = CreateFile("LPT1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
if(hLPT==INVALID_HANDLE_VALUE) cout << "Zly uchwyt" << endl;
char data = 0x00000000;
unsigned long ret;
WriteFile(hLPT,&data,1,&ret,NULL);
cout << GetLastError() << endl;
CloseHandle(hLPT);
Stan na pinie nie zmienia się, GetLastError zwraca 87 czyli zły parametr. I co tutaj jest źle? W necie nie znalazłem żadnego działającego przykładu, chociaż wiele osób pisało że to powinno działać.