内存DC调用SelectObject后发生内存泄露问题

在MFC双缓冲的模式下,使用内存DC进行画图。DC在选择笔之后发生内存泄露。有尝试过
用SelectObject(pOldPen)去释放,但是依然溢出。请问大家都有什么好方法可以解决这个问题

3个回答

没什么好办法,要具体看你的代码。出现内存泄露,肯定是代码的问题。使用内存 DC 的方法,已经验证过无数次。

SelectObject(pOldPen)去释放?这应该不是释放的代码,只是将以前的 DC 对象选入 DC。此步是必须的,因为 DeleteObject() 的对象如果在使用中是无法 Delete 的,虽然调用 DeleteObject() 返回成功、但实际并没有删除。

用boundchecker一类的工具去调试,这个看不出来

问题的原因已经找到了。我的内存DC使用之后没有及时的把它释放掉。所以导致了泄露。另外,在描绘接口中对DC的理解也不是很深刻。部分gdi对象没有及时释放。第一次做桌面APP的开发,所以各方面都有很大欠缺。
谢谢楼上网友的指点

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问