С++ и inpout32.dll
Inpout32.dll - данная библиотека предоставляет возможность управления LPT портом из под ОС семейства NT.
Для работы с библиотекой ее необходимо подключить, делать это будем во время выполнения программы.
В следующем примере, мы отправим значение 255 (0xFF) на порт принтера LPT 1 (IEEE 1284), который обычно использует адресное пространство 0x378 (иногда бывает 0x3bc). Детальней про это можно узнать здесь.
*Кстати, много инфы можно взять, вот здесь.
#include <stdio.h> #include <conio.h> #include <windows.h> #include <iostream.h> typedef short _stdcall (*inpfuncPtr)(short portaddr); typedef void _stdcall (*oupfuncPtr)(short portaddr, short datum); int main(void) { HINSTANCE hLib; inpfuncPtr inp32; oupfuncPtr oup32; hLib = LoadLibrary("inpout32.dll"); if (hLib == NULL) { printf("LoadLibrary Failed.\n"); Sleep(1000); return -1; } inp32 = (inpfuncPtr) GetProcAddress(hLib, "Inp32"); if (inp32 == NULL) { printf("GetProcAddress for Inp32 Failed.\n"); Sleep(1000); return -1; } oup32 = (oupfuncPtr) GetProcAddress(hLib, "Out32"); if (oup32 == NULL) { printf("GetProcAddress for Oup32 Failed.\n"); Sleep(1000); return -1; } // write 255 to 0x378 oup32(0x378, 0xFF); Sleep(200); // read value from 0x378 cout << inp32(0x378); FreeLibrary(hLib); return 0; }
Файл с библиотекой и исходником прикпреплен

Files:
![]() |
id_50_lpt_cpp.zip | 146987 bytes | 2014-02-25 |