怪异的问题,我不知道该改程序还是改系统设置了。

ringphone 2004-12-09 03:10:14
HANDLE m_hfile = CreateFile('LPT1',GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,0,0);
if(m_hfile == INVALID_HANDLE_VALUE)
{
MessageBox(hWnd,"连接打印机失败","错误",MB_OK);
}
else
{
DWORD m_dw;
WriteFile(m_hfile,"测试打印",4,m_dw,NULL);
}
CloseHandle(m_hfile);

以上一段代码是打开并口往打印机写数据,运行环境WIN2000,当系统接了打印机时运行正常,但当系统没接打印机或打印机缺纸时,这段代码也能运行,且跟踪调试也一切正常,所有函数都调用成功的,但过一段时间,系统就会弹一个消息框出来,信息如下:

将文档"No Document Name"打印到LPT1:时发现一个错误。设备没有连接。
是否再试一次或取消作业?
确定 取消

这个消息框即使我程序关闭后也会弹出来,甚至是马上重启系统,系统起来后还能弹出来。这当然是我的数据存在打印缓冲里面了,但是我不想让这个框弹出来该怎么办呢?是改程序还是系统设置?怎么改?
...全文
127 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamltq 2005-01-27
  • 打赏
  • 举报
回复
up
oyljerry 2005-01-27
  • 打赏
  • 举报
回复
这个可能和硬件有关了
xhenry 2005-01-27
  • 打赏
  • 举报
回复
可能无法从应用端得到打印机是否联机的状态。只要WINDOWS安装了打印机驱动,应用端就会认为打印机存在。
ringphone 2005-01-27
  • 打赏
  • 举报
回复
没人知道了吗?
danyueer 2004-12-09
  • 打赏
  • 举报
回复
检查你的打印机连结线是否接触不良。
ringphone 2004-12-09
  • 打赏
  • 举报
回复
怎么在打印前先判断一下是否在 LPT1 口上有打印机联机?我CreateFile和WriteFile不管有没有打印机都成功的。
chuanke 2004-12-09
  • 打赏
  • 举报
回复
try掉
dandycheung 2004-12-09
  • 打赏
  • 举报
回复
这是因为你打印的函数调用首先发给了系统的假脱机打印服务,所以总是成功的。当该服务向打印机真正发送数据时才发现打印机没有联机,所以报告错误。无论系统如何反应,你的程序要想被客户认可,看来还是要改程序。打印前先判断一下是否在 LPT1 口上有打印机联机。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧