绘图过程中,if不能检测到的错误,为何ASSERT却能检测到!?
时间:2011-12-25
来源:互联网
小弟最近遇到一个莫名其妙的问题,百思不得其解,向各位求助。我在进行绘图过程中,有如下语句:
if (m_imageShow1.GetDC()->m_hDC !=NULL)
{
ASSERT(m_imageShow1.GetDC()->m_hDC != NULL);
m_imageShow1.GetDC()->BitBlt( 0, 0, rect.right-rect.left, rect.bottom-rect.top, &memDC_1, 0, 0, SRCCOPY );
}
该程序中,理论上,只要能进到if内部,则“m_imageShow1.GetDC()->m_hDC !=NULL”肯定成立,但为什么我的程序有时却能够被ASSERT检测到错误,并被中断。这个问题不是一直都出现的,而是在程序反复运行多次后,才会出现。也因此,在release模式下,我的程序会莫名其妙的退出。请各位大侠不吝赐教!小弟感激不尽!!
作者: hcl545 发布时间: 2011-12-25
应该重点放在完善代码上。
尝试去掉ASSERT(m_imageShow1.GetDC()->m_hDC != NULL);试试。
作者: fight_in_dl 发布时间: 2011-12-25
你这连着两次使用GetDC,俺脚着不对。
作者: jennyvenus 发布时间: 2011-12-25
作者: jennyvenus 发布时间: 2011-12-25
作者: Allen_zhang 发布时间: 2011-12-25
作者: Lactoferrin 发布时间: 2011-12-25
==========
这里调用GetDC之后没有释放,可能会造成GDI资源泄漏。
另外,在if中调用GetDC成功并不代表后面调用GetDC也一定会成功。
作者: wltg2001 发布时间: 2011-12-25
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28