CreateFile()打开并口成功
HANDLE hParallel; hParallel=CreateFile(
"LPT1",
GENERIC_READ | GENERIC_WRITE,
//GENERIC_WRITE,
0,
//NULL,
0,
OPEN_EXISTING,
//FILE_FLAG_OVERLAPPED,
FILE_ATTRIBUTE_NORMAL,
//NULL
0
); if( hParallel == INVALID_HANDLE_VALUE )
{
switch(GetLastError())
{
case ERROR_FILE_NOT_FOUND:
//MessageBox(NULL,"LPT1并口不存在","提示信息", NULL);
AfxMessageBox("LPT1并口不存在");
break;
case ERROR_ACCESS_DENIED:
//MessageBox(NULL,"LPT1并口被占用","提示信息", NULL);
AfxMessageBox("LPT1并口被占用");
break;
}
}
else
{
//MessageBox(NULL,"成功打开并口","提示信息", NULL);
AfxMessageBox("LPT1并口打开成功");
}但是WriteFile()函数返回值老是出错
////////////////////////////////////////////////////////
BYTE * pOut = new BYTE[8];
pOut=0x20;//在并口的管脚6和管脚地之间接一发光二极管,送出0x20想点亮发光二极管
DWORD number;
if(!WriteFile(hParallel, &pOut, 8, &number, NULL))
{
AfxMessageBox("send data error");
}
else
{
AfxMessageBox("send data success");
}
HANDLE hParallel; hParallel=CreateFile(
"LPT1",
GENERIC_READ | GENERIC_WRITE,
//GENERIC_WRITE,
0,
//NULL,
0,
OPEN_EXISTING,
//FILE_FLAG_OVERLAPPED,
FILE_ATTRIBUTE_NORMAL,
//NULL
0
); if( hParallel == INVALID_HANDLE_VALUE )
{
switch(GetLastError())
{
case ERROR_FILE_NOT_FOUND:
//MessageBox(NULL,"LPT1并口不存在","提示信息", NULL);
AfxMessageBox("LPT1并口不存在");
break;
case ERROR_ACCESS_DENIED:
//MessageBox(NULL,"LPT1并口被占用","提示信息", NULL);
AfxMessageBox("LPT1并口被占用");
break;
}
}
else
{
//MessageBox(NULL,"成功打开并口","提示信息", NULL);
AfxMessageBox("LPT1并口打开成功");
}但是WriteFile()函数返回值老是出错
////////////////////////////////////////////////////////
BYTE * pOut = new BYTE[8];
pOut=0x20;//在并口的管脚6和管脚地之间接一发光二极管,送出0x20想点亮发光二极管
DWORD number;
if(!WriteFile(hParallel, &pOut, 8, &number, NULL))
{
AfxMessageBox("send data error");
}
else
{
AfxMessageBox("send data success");
}
解决方案 »
- 3d图形开发开源库vtk 的学习和使用
- VC 开发的ActiveX控件 Delphi 7下使用时一些属性看不到。
- 这个问题把我弄郁闷了!高手进来帮我!!进来的都有分!!!谢谢!!!!!急!!!!!
- 初学者:关于DLL的小问题
- 我用CreateProcess运行了一个批处理文件,但是我不想让它在后台运行或者不显示那个窗口,应该怎么做?
- 为什么这段代码不能接收到数据,求高手解答
- 调用ms xml 中save方法时,如何能使插入的内容换行
- 为什么会出现这种情况(连接不上SQL2000数据库)?
- 怎样连接sql-server数据库
- WinMe的问题,请教各位!
- 给大家介绍一个网站www.sxsoft.com---软件项目交易网
- 如何修改动态数据表 给出解决方法者给100分
应该是pOut[0]=0x20;if(!WriteFile(hParallel, &pOut, 8, &number, NULL))
pOut本身就是地址,不再用&
pOut[0]=0x20;
if(!WriteFile(hParallel, pOut, 8, &number, NULL))编译通过,还是打开并口没有问题,但是 WriteFile()返回值还是FALSE
在一个按钮的单击事件函数里写的WriteFile函数