GDV>>да собственно вопрос в том какой набор API при этом использовать . GDV>>я работал с СОМ портами, а как с LPT не знаю, особенно как распознавать входящие цепи GDV>>регстр состояния принтера
AP>В Windows98/98 никакой API не нужен-можешь писать напрямую в порты AP>принтера,примерно так :
AP>#define PortData 0x0378 // Parallel port data register address AP>#define PortStat (PortData+1) // Parallel port status register address AP>#define PortCtrl (PortData+2) // Parallel port control register address
AP>void Strobe() // эта функция инициирует передачу байта,который уже помещен в регистр данных AP>{ AP> BYTE b=_inp(PortCtrl); AP> // установить строб бит в 0 AP> b = SetBit(b,5,0) ; AP> _outp(PortCtrl,b); AP>}
AP>BYTE SetBit(BYTE Byte, BYTE nBit, BYTE value) AP>{ AP> if (value) AP> Byte = Byte | (1<<nBit); AP> else AP> Byte = Byte &(~(1<<nBit)); AP> AP> return Byte; AP>}
AP>// посылка байта в LPT port выглядит так AP>void SendByte(BYTE data) AP>{ AP> _outp(PortData,data); // заносим байт в регистр данных AP> Strobe(); // послать байт AP>}
AP>А в Win NT/2000 нужно работать через Kernel-driver,иначе попытка обращения к портам напрямую AP>вызовет ошибку привилегий доступа.
согласен с таким способом работы, но меня интересует простой набор функций API,
например таких как для СОМ порта (GetCommMask,GetCommModemStatus), хотелось бы вообще узнать существуют ли такие.
напимер получить дескриптор LPT можно через CreateFile, подозреваю что записать можно в него с помощью ф-ции WriteFile, но как с цепями управления быть и менять режим работы LPT (SPP,EPP,ECP) непонятно вообще