Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LPT端口(C)窗口_C_Windows_Lpt - Fatal编程技术网

LPT端口(C)窗口

LPT端口(C)窗口,c,windows,lpt,C,Windows,Lpt,在实验室设置为在LPT上给字符串。我们取两个kod。一个kod取错误 #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("LP

在实验室设置为在LPT上给字符串。我们取两个kod。一个kod取错误

    #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; }
#包括
#包括
int main(){
HANDLE hLPT=CreateFile(“LPT1”,
泛型_WRITE,0,NULL,
开放式,
文件\属性\正常,空);
if(hLPT!=无效的句柄值){
printf(“LPT1ццццц\n”);
字符缓冲区[25];
memset(buffer,0,sizeof(buffer));
strcpy(缓冲区,“测试LPT”);
DWORD dw;重叠ov;int i;
对于(i=0;i<3;i++)
WriteFile(hLPT、buffer、sizeof(buffer)、dw和ov);
闭合手柄(hLPT);}
else printf(“错误\n”);
返回0;}
在这种情况下,kode不起作用

#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;
}
#包括
#包括
#包括
void InitLPTW(无符号短端口)
{
__输出字节(端口,0x0C);
usleep(1);
__输出字节(端口,0x08);
}
bool TestLPTW(无符号短端口)
{
无符号字符dwResult=0;
// читаем байт из порта
__inbyte(端口和dwResult);
if((dwResult&0x10)==0x01)
返回true;
返回false;
}
int main(int argc,字符**argv)
{   
返回0;
}

问题是什么?或者如何使用LPT端口?

\uuuuInByte
等将无法在现代操作系统上工作,包括Windows(除非是Windows 98/ME或其他基于DOS的操作系统)。它是特权指令,因此无法从用户模式应用程序调用


第一篇文章的方向正确,请以德莱尔斯的形式阅读,并纠正具体错误。

哦,怀旧。您只能在Windows 98上直接访问LTP端口/物理内存。之后,您必须通过API。我记得在windowsxp中使用了一些黑客在不同的“环级别”运行程序,但仍然直接访问LTP端口。我是怎么做到的,我不记得了,这是大约20年前的事了,那时计算机仍然有LTP端口。这绝对有可能。。。请查看此旧页面以获取各种资源:。我认为他们有一个利用这些技巧的图书馆。