LPT端口(C)窗口
在实验室设置为在LPT上给字符串。我们取两个kod。一个kod取错误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
#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端口。这绝对有可能。。。请查看此旧页面以获取各种资源:。我认为他们有一个利用这些技巧的图书馆。