• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

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

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:时发现一个错误。设备没有连接。
是否再试一次或取消作业?
确定 取消

这个消息框即使我程序关闭后也会弹出来,甚至是马上重启系统,系统起来后还能弹出来。这当然是我的数据存在打印缓冲里面了,但是我不想让这个框弹出来该怎么办呢?是改程序还是系统设置?怎么改?
...全文
109 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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 口上有打印机联机。
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-12-09 03:10
社区公告

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