В лабораторном наборе, чтобы сделать строку на LPT. Используется два кода. Один код принимает ошибку
#include <windows.h>
#include <stdio.h>
int main() {
HANDLE hLPT = CreateFile("LPT1",
GENERIC_WRITE,0,NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,NULL);
if (hLPT!=INVALID_HANDLE_VALUE) {
printf("LPT1 открыт\n");
char buffer[25];
memset(buffer,0,sizeof(buffer));
strcpy(buffer,"Test LPT ");
DWORD dw; OVERLAPPED ov; int i;
for (i = 0;i < 3;i++)
WriteFile(hLPT,buffer,sizeof(buffer),&dw,&ov);
CloseHandle(hLPT); }
else printf("Error \n");
return 0; }
В этом коде не работает __outbyte
#include <stdio.h>
#include <conio.h>
#include <unistd.h>
void InitLPTW (unsigned short Port)
{
__outbyte(Port, 0x0C);
usleep(1);
__outbyte(Port, 0x08);
}
bool TestLPTW (unsigned short Port)
{
unsigned char dwResult = 0;
// читаем байт из порта
__inbyte(Port, &dwResult);
if ( ( dwResult & 0x10) == 0x01)
return true;
return false;
}
int main(int argc, char **argv)
{
return 0;
}
Что такое проблема? или как можно работать с LPT-портом?