关于bitblt函数失败的问题(HDC is invalid handle)

wdz609 2010-03-05 10:23:39
大家好,
首先说明,我很正确的使用了bitblt。

只是最近碰到一个问题:在长时间持续run我的程序时(比如此程序为一个exe,并利用bat的for循环重复调用此exe),中间某小段时间出现了Bitblt失败,根据GetLastError得到的Error Description为The handle is invalid。然后后面的时间又正常了。

我想知道,
1、这种错误的可能原因是什么? (PS,以前曾碰到此类函数出错后,GetLastError()得到0的情况)。
2、是否需要严格检查那些绘图API(LineTo,BitBlt)的返回值?如果不检查,在那种需要检查所绘图像是否正确的情况下怎么避免因为绘图失败而导致的错误的出现?

谢谢大家~~
...全文
421 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdz609 2010-03-24
  • 打赏
  • 举报
回复
增加一种情况:
在windows server 2008 R2上,我绘制完图像并显示后(屏幕分辨率色深为16bit),再用GetDC(NULL),然后用GetPixel()获取某些地方的颜色值,用以确认是否绘制成功,但很容易得到CLR_INVALID。为什么?
wdz609 2010-03-05
  • 打赏
  • 举报
回复
hdc等GDI资源都正确释放了,我验过所有可能的分支。呵呵。我是使用createXXDC等方法建立的,后面都有对应的DeletetDC对应。
macrojj 2010-03-05
  • 打赏
  • 举报
回复
你可能没有释放句柄啦。

dubiousway 2010-03-05
  • 打赏
  • 举报
回复
是不是 hdc 你没有释放。。。 ?

releaseDc deletedc endPaint .... 都要及时和前面的获得dc的函数配套使用


再要不,就是其他资源,画笔、画刷。。。。只类的资源,都要及时释放。一用完就释放

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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