查GDI对象泄露的利器:GDIView

查GDI对象泄露的利器:GDIView的相关文章

GDI对象导致内存泄露

最近在一个项目中,被测试组人员检测出来GDI对象导致内存泄露,之后,经过代码的走读,确实发现存在这样一个问题. 首先是现象,在一些项目中,如果发现图片,图标等突然显示不出来,就有可能是GDI对象已经满了,这个事情,用任务管理器,把GDI对象打开,就可以看到了,如果GDI对象迅速上涨,就基本可以确认是GDI对象导致内存泄露. 经过查证,发现以下代码会导致GDI对象上涨,内存泄露,因为以下代码会定时执行,每当一个执行周期一道,就会重新申请内存,导致泄露. m_switch_http.SetIcon(

利用任务管理器侦测GDI内存泄露

打开任务管理器,点击菜单"查看"--"选择列",勾上所有项,"确定".运行自己的程序,进行各种操作,并查看任务管理器中GDI对象和句柄数的变化.         如果在某次可逆操作中,例如,弹出一个对话框,然后关闭,GDI对象或句柄数先增加了,然后减少了,但是总量还是增加了,说明存在内存泄露,GDI对象没有被及时回收.如果句柄数出现类似情况,则情况复杂很多.         接下来,注释掉某些代码,编译运行并继续观察,逐步定位导致内存泄露的代码段

GDI和GDI+对象的相互转换

当然希望可以使用GDI+来完全代替GDI,再不济也只需要从GDI对象转到GDI+对象.但是就 是有那么些工程,又要新技术新特性.又希望快速开发.又不肯丢弃旧版本的已有的功能. 没办法,只能缝缝补补,咔哐碙啌... 一.CDC到Graphics只要这样: Graphics g(pDC->GetSafeHdc());//只要能构造CDC句柄的MFC对象都可以 //CClientDC.CPaintDC,也都可以 二.CBitmap到Graphics需要创建一个内 存位图设备: CDC MemDC; C

系统-c#中调用水晶报表怎么释放gdi对象?

问题描述 c#中调用水晶报表怎么释放gdi对象? 一个保存打印的功能,调试到打印这个地方的时候,GDI对象会一直往上升,结束操作后,不会释放出来,同样的操作一天要操作上百次,一直累加到1000个对象左右系统就会崩溃. 求解决办法,另外打印是调用水晶报表来实现的. 解决方案 对于graphic image等,都要调用dispose方法释放

工作学习笔记——GDI泄露检测利器

用.Net写的地图编辑器,最近在一个长时间使用的策划手里频繁挂掉.定位到原因应该是GDI泄露.但在几千行代码里手工寻找泄漏点实在是有些困难,直到在网上找到了这个检测GDI泄露的工具GDILeaks.它的强大之处,在于可以将程序里当前占用的gdi位图.dc用图形格式显示出来,这样,泄露点基本上就直接展示在你眼前了. 另外,关于泄露为什么会发生,我还有些疑问.经检查,泄漏点是这样的C#代码 void doSomeThing() { Bitmap tmpBmp = new Bitmap(100,100

GDI资源泄露检测

class DbgGuiLeak{public:    explicit DbgGuiLeak ()    {        _guiResCount = ::GetGuiResources (::GetCurrentProcess (),                                          GR_GDIOBJECTS);    }    ~DbgGuiLeak ()    {        int leaks = ::GetGuiResources (::GetC

程序运行一段时间后,界面不刷新 mfc

问题描述 程序运行一段时间后,界面不刷新 mfc 用vc2008做的程序,在自建的线程里,处理蓝牙虚拟串口通信的接收数据和实时显示! 发现程序跑40分钟左右后,界面变灰!但程序没死,数据通信显示正常.其他控件就没了.移动鼠标可以看到,也可以操作!感觉就是主界面不重绘了!如图: 程序运行时看任务管理器的内存,也不大!应该不是内存泄漏的问题 找不出原因了!网上用PeekMessage的方法试了,还是没用!谁能帮忙给个解答! 这个线程机制以前用串口通信和usb虚拟串口通信都是正常的,没出现过这个问题!

[非原创] 用于将真彩色图像降级为索引图像的八叉树算法

本文介绍的内容,是用八叉树法降级一个真彩色图像(BPP=16以上).这也是某公司在今年校园招聘中的笔试中的最后一道题目.我参考了 Jeff Prosise 所写的这篇文章(见参考资料),然后修改了他提供的范例的源码,使能够更好的演示该算法,同时我也添加了绘制八叉树的代码,可以直观的看到八叉树的形态. 索引图像的尺寸比真彩色图像可以大幅降低,保存为256色索引图像大约只有真彩色图像的1/3 (bpp = 24) 或 1/4 (bpp = 32),因为表示每个像素的数据从3或4个字节减少到1个字节.

修改 EXE 文件的图标

[关键字]VC++,修改EXE文件的图标 在很多年前很著名的熊猫烧香病毒,就有这样一个行为,是搜索硬盘上的可执行文件并感染它们,其典型外观症状就是程序的图标变成了熊猫烧香.本文讲解的是修改EXE文件(可执行文件)的图标,可以看做是我写PE文件的Directoried相关文章的一个后续应用,本文性质属于技术可行性研究.考察下windows系统上的文件可以发现下面的特征: (1)应用程序的可执行文件可以有自己定义的图标,通常位于其资源中,资源管理器使用资源中的图标显示它们,如果没有资源,就显示成系统