wince EVC 绘图内存泄露

简介:

最近在wince  用MFC作绘图的程序。

 

CDC *pCD = GetDC(); CDC memDC; CBitmap memBitmap; CPen newPen; .... ....//后面是画图代码 //以上定义的这些量都会在我的绘图的for()循环中,反复定义反复使用,其中,memBitmap, newPen,是供memDC在内存中画图使用的。 //正常的思维都是在使用完之后销毁。 newPen.DeleteObject(); memBitmap.DeleteObject(); memDC.DeleteDC(); pDC->ReleaseDC(); //如此释放

 

那么,这么释放的话,等for循环次数多了,wince就会提示内存不足,出现内存泄露。

 

那么,上面代码明明白白的写出来了,关于对使用的量进行释放。为什么还是出现内存泄露呢?

 

google了很久,后来在微软官方找到了解决办法。

http://support.microsoft.com/kb/819635/zh-cn

 

但是,按照他的办法,我还是出现了内存泄露。程序运行一段时间之后,会出现内存不足,内存泄露的问题。

 

 

后来,开始对代码进行调试,经过调试,我发现,

 

memBitmap.DeleteObject()

newPen.DeleteObject();

 

这两句运行之后,内存根本就没有释放空间。这说明这两句话没有起到释放的作用。

 

那么为什么没有起到作用呢?  莫非是因为memBitmap 和newPen还在使用当中?

 

于是调换了释放顺序如下:

 

memDC.DeleteDC(); newPen.DeleteObject(); memBitmap.DeleteObject() pDC->ReleaseDC(); //newPen,memBitmap在memDC释放之后再释放。

 

问题就解决了,内存泄露问题解决了。

 

 

目录
相关文章
|
3天前
|
Windows
LabVIEW在Windows10下调出软键盘的说明与例程
LabVIEW在Windows10下调出软键盘的说明与例程
|
12月前
|
数据可视化 C++ Windows
非可视化编程的windows窗口 C++ 代码设计:附例程并多多知识点
非可视化编程的windows窗口 C++ 代码设计:附例程并多多知识点
171 0
|
数据可视化 Windows
MFC模拟 Windows 文件可视化系统(下)
MFC模拟 Windows 文件可视化系统
154 0
MFC模拟 Windows 文件可视化系统(下)
|
存储 数据可视化 算法
MFC模拟 Windows 文件可视化系统(上)
MFC模拟 Windows 文件可视化系统
174 0
MFC模拟 Windows 文件可视化系统(上)
|
数据可视化 Windows
MFC模拟 Windows 文件可视化系统(中)
MFC模拟 Windows 文件可视化系统
177 0
MFC模拟 Windows 文件可视化系统(中)
|
Windows
Windows程序设计——GDI基本画图的操作实现
Windows程序设计——GDI基本画图的操作实现
261 0
|
Web App开发 开发框架 算法
Qt使用GDI绘图(仅Windows平台)
Qt使用GDI绘图(仅Windows平台)
872 0
|
编解码 Linux
基于bootsplash的嵌入式linux启动画面定制
来源: ChinaUnix博客  作者: ChinaUnix博客   发布时间:2007-01-01 16:29:00 摘 要:在基于linux的嵌入式仿真平台研发中,利用开源工具bootsplash能够定制启动logo、设定控制台背景和显隐启动时的字符信息,甚至能够支持开机进度条的动画显示。
1091 0
|
数据库 数据库管理