CStatic::SetBitmap导致的内存泄露问题
2012-07-30 14:51
281 查看
由于需要动态的改变控件的图标显示,程序中对同一控件多次调用了SetBitmap方法,结果导致了内存泄露。
解决方法如下:
关键是需要手动将以前set过的资源用DeleteObject释放掉。
问题虽然解决了,但是不太明白为什么SetBitmap函数内部为什么没有自动把没用的资源释放掉?
解决方法如下:
HBITMAP hBmpOn; HBITMAP oldBmp; image.Load(_T("res/led_green.png")); hBmpOn = image.Detach(); oldBmp = (*it)->SetBitmap(hBmpOn); if ( oldBmp != NULL ) { DeleteObject(oldBmp); } if ( hBmpOn != NULL ) { DeleteObject(hBmpOn); }
关键是需要手动将以前set过的资源用DeleteObject释放掉。
问题虽然解决了,但是不太明白为什么SetBitmap函数内部为什么没有自动把没用的资源释放掉?
相关文章推荐
- Android开发编码规范导致的内存泄露问题
- 项目----1(在项目开发中AsyncTask与Activity生命周期不一导致内存泄露的问题)
- QT中使用槽函数来关闭窗口,导致内存泄露的问题以及解决办法
- memset函数导致内存泄露的问题
- Android中Handler使用不当导致内存泄露的问题
- 误用Freemarker标签和SpringJDBC预编译功能导致的内存泄露问题分析
- c++ 导致内存泄露的一些小问题与解决方法
- memset导致的内存泄露问题的解决办法
- Handler当做内部类,导致内存泄露的问题
- java读取excel数据,导致内存泄露的问题
- Android Handler当做内部类,导致内存泄露的问题解决方案
- NSTimer导致的内存泄露,找了好久的问题
- 关于hashcode修改导致内存泄露的问题
- 使用dialog导致内存泄露的问题
- JNI接口中jstring导致内存泄露问题的解决
- MFC中onctlcolor函数返回的画刷导致的内存资源泄露问题
- Android开发,中可能会导致内存泄露的问题
- Android开发编码规范导致的内存泄露问题
- UIImageView 加入子UIImageView 导致内存泄露的问题
- android开发中,可能会导致内存泄露的问题