MFC误报内存泄露的修复
2016-07-02 21:52
134 查看
在debug状态退出程序的时候,VS会在输出窗口列出可能的内存泄露的地方。
MFC中使用DEBUG_NEW能够更方便的定位泄露的地点。但假如MFC的dll释放“”过早“”,DEBUG_NEW记录的内存分配信息就会不灵了。
那什么情况下导致MFC的DLL过早释放呢?
有这样一种情况:以#pragma comment(lib, _LIBNAME_)方式link一个依赖MFC的lib。
比如在使用BCGControlbar界面库的时候,默认是使用这样的方式。
如何避免MFC的DLL过早释放?
在Additional Dependencies里面把mfc100ud.lib放在第一个的位置。
这样就符合先加载后释放的规则。
另外#pragma comment(lib, _LIBNAME_)虽然减少了设置project的lib依赖的步骤,但最好还是使用显示的link依赖,起码我们会更清楚dll的加载顺序。
MFC中使用DEBUG_NEW能够更方便的定位泄露的地点。但假如MFC的dll释放“”过早“”,DEBUG_NEW记录的内存分配信息就会不灵了。
那什么情况下导致MFC的DLL过早释放呢?
有这样一种情况:以#pragma comment(lib, _LIBNAME_)方式link一个依赖MFC的lib。
比如在使用BCGControlbar界面库的时候,默认是使用这样的方式。
如何避免MFC的DLL过早释放?
在Additional Dependencies里面把mfc100ud.lib放在第一个的位置。
这样就符合先加载后释放的规则。
另外#pragma comment(lib, _LIBNAME_)虽然减少了设置project的lib依赖的步骤,但最好还是使用显示的link依赖,起码我们会更清楚dll的加载顺序。
相关文章推荐
- MFC误报内存泄露的修复
- go语言基本类型
- IP协议相关技术
- OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401_FBO install
- 小知识(1)
- InheritableThreadLocal用法与ThreadLocal的区别
- 【1】从零开始:安装sublime text 3
- 在form表单里不要出现submit等关键词,否则调用form.submit();会出现form.submit is not a function的错误;
- 常用的 Python 爬虫技巧总结
- 博客自荐(十一期 2016年07月)
- IP协议
- 异常处理Demo
- 常见查找
- 创业不是做产品,而是发现问题,解决问题
- frameset的问题
- CODEVS 1134 noip2011 铺地毯
- 排序及相关算法
- ubuntu下安装软件命令apt-get与dpkg命令的区别
- mysql 优化
- 2016第27周六