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释放之后再释放。

 

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

 

 

目录
相关文章
|
存储 XML 传感器
NB-IoT 之 CoAP 协议格式介绍 | 学习笔记
快速学习 NB-IoT 之 CoAP 协议格式介绍
NB-IoT 之 CoAP 协议格式介绍 | 学习笔记
|
资源调度 监控 JavaScript
3倍+提升,高德地图极致性能优化之路
伴随着高德地图APP近几年的高速发展,也面临到这些问题,从2019年开始,我们开启了一系列性能优化专项,对高德地图APP进行了深入性能分析和极致优化,取得比较显著的效果。在这个过程中总结了一系列优化思路和技术方案,希望对同样面临超级应用性能问题的你有所帮助。
|
物联网
IoT物联网设备OTA固件升级开发实践
通过OTA方式,我们可以对分布在全球各地的IoT设备进行设备固件升级,而不必让运维人员各地奔波。
7539 0
|
存储 Android开发 iOS开发
指导:大量联系人电话号码怎么导入iphone苹果手机通讯录?
想有没有简单的办法能帮我来快速批量操作完成,在网上查了很多方法都很复杂,搞了半天精疲力尽,在我快要放弃的时候遇到了一个网上常见简便的软件工具,金芝号码提取导入助手。它很轻松就解决了我的问题:大量联系人电话号码怎么导入iphone苹果手机通讯录?当然了安卓手机也是可以导入的,通用。我写了一个详细的图文教程。
3196 0
指导:大量联系人电话号码怎么导入iphone苹果手机通讯录?
|
存储 SQL 关系型数据库
MySQL分库分表,何时分?怎么分?
MySQL分库分表,何时分?怎么分?
1371 0
MySQL分库分表,何时分?怎么分?
|
安全 Java jenkins
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)
418 0
(走过路过,不要错过)【CI/CD技术专题】「Jenkins实战系列」(1)全流程介绍Jenkins环境搭建+基础部署配置(Windows->Linux)
|
数据采集 运维 DataWorks
客户案例:数仓规范化-菜鸟数据模型管理实践(一)| 学习笔记
快速学习客户案例:数仓规范化-菜鸟数据模型管理实践。
客户案例:数仓规范化-菜鸟数据模型管理实践(一)| 学习笔记
|
C++
Qt | Qt的项目文件.pro文件详解
了解Qt中的.pro文件。
858 0
|
安全 搜索推荐
秒懂云通信:如何用阿里云平台发短信?
手把手教你如何用阿里云平台发短信,超详细控制台步骤解析,快速上手!更有1650元短信体验代金券和免费试用,点击速抢!
4180 0
秒懂云通信:如何用阿里云平台发短信?
|
开发框架 JavaScript 安全
Kraken:paypal开源的Web开发框架
PayPal最近发布了一款Node.js Web开发框架——Kraken。 Kraken基于Express。Express是目前Node.js上最流行的MVC模式的Web开发框架。Express提供的一系列强大特性可以帮助开发者快速创建各种Web应用。而Kraken在Express的基础上提供了更加稳健的功能集,包括本地化、环境配置,同时更加注重应用程序安全。
510 0