当前位置: 首页 > news >正文

GDI对象导致内存泄露

最近在一个项目中,被测试组人员检测出来GDI对象导致内存泄露,之后,经过代码的走读,确实发现存在这样一个问题。

首先是现象,在一些项目中,如果发现图片,图标等突然显示不出来,就有可能是GDI对象已经满了,这个事情,用任务管理器,把GDI对象打开,就可以看到了,如果GDI对象迅速上涨,就基本可以确认是GDI对象导致内存泄露。

经过查证,发现以下代码会导致GDI对象上涨,内存泄露,因为以下代码会定时执行,每当一个执行周期一道,就会重新申请内存,导致泄露。

None.gif m_switch_http.SetIcon((HICON__ * )::LoadImage(AfxGetApp() -> m_hInstance, MAKEINTRESOURCE(IDI_OFF), 
None.gif        IMAGE_ICON, 
16 16 , LR_DEFAULTCOLOR));

正确的修改方法应该改为:
None.gif //  加载代码在初始化的时候完成,不能放在定时器里面
None.gif
HICON h_off  =  (HICON__ * )::LoadImage(AfxGetApp() -> m_hInstance, MAKEINTRESOURCE(IDI_OFF), 
None.gif        IMAGE_ICON, 
16 16 , LR_DEFAULTCOLOR);
None.gif 
None.gif
//  以下代码放在定时器里面执行
None.gif
m_switch_http.SetIcon(h_off);

相关文章:

  • CCNA 笔记整理之IP路由(持续更新)
  • 一个帖子掌握android所有控件、ProgressBar 、Android 动画效果、SQLite、四大组件、Android多媒体(转...
  • Android系统模拟器绘制实现概述
  • 保留网页中空链接样式的几种写法(转)
  • DockOne微信分享(一零七):SRE工程实践——基于时间序列存储数据的报警
  • Blend中行为与Command
  • JSONP原理
  • 灭绝僵尸
  • HTTP 05 安全
  • ajax跨域jsonp及jquery中的调用问题
  • idea中git远程版本回退
  • Linux中查看系统版本的方法
  • 心有多大,微博就有多大!
  • 21.26 mongodb介绍
  • WPF入门(一):简单的演示
  • [LeetCode] Wiggle Sort
  • 【刷算法】求1+2+3+...+n
  • python docx文档转html页面
  • Vue2.x学习三:事件处理生命周期钩子
  • windows下如何用phpstorm同步测试服务器
  • 从零开始在ubuntu上搭建node开发环境
  • 关于springcloud Gateway中的限流
  • 盘点那些不知名却常用的 Git 操作
  • 配置 PM2 实现代码自动发布
  • 如何利用MongoDB打造TOP榜小程序
  • 设计模式走一遍---观察者模式
  • 新版博客前端前瞻
  • 用Visual Studio开发以太坊智能合约
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • !$boo在php中什么意思,php前戏
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (52)只出现一次的数字III
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C语言)二分查找 超详细
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (编译到47%失败)to be deleted
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (转)LINQ之路
  • (转)四层和七层负载均衡的区别
  • (转载)虚函数剖析
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .Net中的集合
  • .php结尾的域名,【php】php正则截取url中域名后的内容
  • .sys文件乱码_python vscode输出乱码
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • /proc/vmstat 详解
  • [ C++ ] STL---string类的使用指南
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [AutoSAR系列] 1.3 AutoSar 架构
  • [CSS]中子元素在父元素中居中
  • [C进阶] 数据在内存中的存储——浮点型篇
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日