如何获取默认打印机?

wkgenius 2003-12-12 01:09:29
如何在Windows2000下获取默认的打印机?我用GetDefaultPrinter有时候会出问题,我在GetDefaultPrinter之前用一个MessageBox就能正常工作,要不然在打印的时候就会出现非法操作,不知道怎么回事,GetDefaultPrinter内部是不是用了什么多线程的东西?
...全文
140 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
bluebohe 2003-12-12
没碰到过同类问题……
  • 打赏
  • 举报
回复
yifengling0 2003-12-12
关注一下!~

你不是你调用函数的地方不对啊!~

可能要等一些初始化完成的时候把!·~

  • 打赏
  • 举报
回复
wkgenius 2003-12-12
我的代码是这样的:
LPTSTR lpPrinterName=NULL;
DWORD dwSizeNeeded=0;

GetDefaultPrinter(NULL,&dwSizeNeeded);

lpPrinterName=(LPTSTR)::GlobalAlloc(GPTR,dwSizeNeeded);
if(!lpPrinterName)
return;

Sleep(500);

if(GetDefaultPrinter(lpPrinterName,&dwSizeNeeded))
{
m_strPrinterName=lpPrinterName;
}

::GlobalFree((HGLOBAL)lpPrinterName);

问题是这样,如果把那个Sleep(500)去掉,程序就会出错。而且我看了一下,不是GetDefaultPrinter的问题,而是GlobalAlloc的问题,如果去掉Sleep,则程序就会错,说内存不为write。请大家看看除了用Sleep,还有什么办法?
  • 打赏
  • 举报
回复
dennis80 2003-12-12
http://www.codeguru.com/printing/SetPrinter.shtml
  • 打赏
  • 举报
回复
xiaohonghong 2003-12-12
up
  • 打赏
  • 举报
回复
相关推荐
发帖
VC/MFC
加入

1.6w+

社区成员

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

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