在共享 DLL 中使用 MFC 出现内存泄漏
来源:互联网 发布:怎么清除手机数据 编辑:程序博客网 时间:2024/06/05 21:55
写了个lib库程序。
在控制台应用程序中调用该lib库,执行都正常,退出时也没有内存泄漏。
在MFC界面应用程序中调用该lib库,执行正常,但退出时报告有内存泄漏。
如下:
Detected memory leaks!
Dumping objects ->
{168} normal block at 0x0080FF18, 16 bytes long.
Data: < a ` > DC D9 C8 61 02 00 00 00 01 00 00 00 60 FE 80 00
{167} normal block at 0x0080FEC8, 14 bytes long.
Data: <bad exception > 62 61 64 20 65 78 63 65 70 74 69 6F 6E 00
{166} normal block at 0x0080FE60, 44 bytes long.
Data: < a ( a a> EC B9 C8 61 00 00 00 00 28 BA C8 61 E0 B8 C8 61
{163} normal block at 0x0080FD70, 16 bytes long.
Data: < a @ > C0 D9 C8 61 02 00 00 00 01 00 00 00 40 F7 80 00
{162} normal block at 0x0080F740, 44 bytes long.
Data: < a @ a a> A4 B8 C8 61 00 00 00 00 40 B9 C8 61 E0 B8 C8 61
{161} normal block at 0x0080F6F8, 8 bytes long.
Data: <$ a > 24 D1 C9 61 00 00 00 00
Object dump complete.
一遍又一遍的检查了代码,没有发现程序上有内存泄漏的地方。
经过调查,MFC的使用改为[在静态库中使用 MFC]后,重新编译运行,检测出内存泄漏的提示消失。
我写的程序中有全局变量类实例,而且里面new了内存,但类实例析构时delete了内存。
猜测有可能是全局变量释放前进行了内存泄漏检测。导致出现内存泄漏提示。
设置为[在静态库中使用 MFC]后,内存泄漏的检测置后到全局变量释放后了,所以就没有问题了。
在MFC中使用ACE也出现了类似的问题。估计采用同样方法都可以解决。
- 在共享 DLL 中使用 MFC 出现内存泄漏
- dll中使用到容器的全局变量在mfc中报内存泄漏
- VS2010 在共享 DLL 中使用 MFC
- MFC中使用CMFCBUTTON按钮关闭对话框出现内存泄漏
- MFC VS2013 在静态库中使用MFC 和在共享DLL中使用MFC 切换
- MFC的使用——在共享DLL中使用MFC、在静态库中使用
- 在静态库中使用MFC 、 在共享dll中使用mfc 两者间的转换
- 在共享DLL中使用MFC和在静态库中使用MFC有什么区别
- 在共享DLL中使用MFC 和在静态库中使用MFC
- 在共享DLL中使用MFC 和在静态库中使用MFC区别
- 在共享DLL中使用MFC 和在静态库中使用MFC
- 在共享DLL中使用MFC 和在静态库中使用MFC
- 在共享DLL中使用MFC 和在静态库中使用MFC的区别
- 在共享DLL中使用MFC 和在静态库中使用MFC区别
- 在共享DLL中使用MFC 和在静态库中使用MFC的区别
- 在共享DLL中使用MFC 和在静态库中使用MFC区别 .
- 在共享DLL中使用MFC 和在静态库中使用MFC的区别
- 在共享DLL中使用MFC 和在静态库中使用MFC的区别
- 【java学习】9.时间的概念
- B-树学习笔记
- 建立mysql与数据库连接和释放资源 工具类
- 浅谈经典排序算法系列—各种排序算法总结
- android TabHost的两种布局方式
- 在共享 DLL 中使用 MFC 出现内存泄漏
- Centos6.5下使用tcpdump抓包并用wireshark分析
- EditPlus 在线生成注册码
- 【Java老手该当心的13个错误】
- lucene4.7 过滤Filter
- 利用Xtrabackup备份集合恢复一台从库的过程
- openCV学习笔记(9)Mat与IplImage,CvMat类型之间转换
- android小技巧
- Spring 使用JPA