vs2010调试内存泄露 a CMFCVisualManager object at $01481660, 200 bytes long
2011-06-13 09:50
441 查看
ExitInstance 成员函数
每当应用程序的副本终止时(通常是因为用户退出应用程序),都调用 CWinApp 类的 ExitInstance 成员函数。
如果需要进行特殊的清理处理(如释放图形设备接口 (GDI) 资源或释放程序执行期间使用的内存),请重写 ExitInstance。但文档和视图等标准项的清理工作由框架提供,其他可重写函数将用于特定于那些对象的特殊清理工作。
在你的CXXXApp类“属性”的“重写”里面~
在调试程序出现内存泄露:
Detected memory leaks!
Dumping objects ->
{914} client block at 0x01481660, subtype c0, 200 bytes long.
a CMFCVisualManager object at $01481660, 200 bytes long
到网上搜索了一下,找到了答案。原因在于VS2008中MFC程序中的应用程序类都派生自CWinAppEx,VS 2008的程序里有一个CMFCVisualManager类的全局对象,负责管理可视化界面,具体来说就是一个单件(设计模式中的单件模式),CWinAppEx类的ExitInstance函数可以析构这个对象。但是以往的MFC程序的应用程序类都派生自CWinApp,因为需要在ExitInstance函数手动这个类对象,具体就是在应用程序类的ExitInstance函数添加代码
CMFCVisualManager::DestroyInstance( TRUE );
每当应用程序的副本终止时(通常是因为用户退出应用程序),都调用 CWinApp 类的 ExitInstance 成员函数。
如果需要进行特殊的清理处理(如释放图形设备接口 (GDI) 资源或释放程序执行期间使用的内存),请重写 ExitInstance。但文档和视图等标准项的清理工作由框架提供,其他可重写函数将用于特定于那些对象的特殊清理工作。
在你的CXXXApp类“属性”的“重写”里面~
在调试程序出现内存泄露:
Detected memory leaks!
Dumping objects ->
{914} client block at 0x01481660, subtype c0, 200 bytes long.
a CMFCVisualManager object at $01481660, 200 bytes long
到网上搜索了一下,找到了答案。原因在于VS2008中MFC程序中的应用程序类都派生自CWinAppEx,VS 2008的程序里有一个CMFCVisualManager类的全局对象,负责管理可视化界面,具体来说就是一个单件(设计模式中的单件模式),CWinAppEx类的ExitInstance函数可以析构这个对象。但是以往的MFC程序的应用程序类都派生自CWinApp,因为需要在ExitInstance函数手动这个类对象,具体就是在应用程序类的ExitInstance函数添加代码
CMFCVisualManager::DestroyInstance( TRUE );
相关文章推荐
- VC 2010+MFC:CMFCVisualManager::GetInstance()导致的内存泄露 2012-2-15 10:18
- 奇怪的内存泄露 incorrect decrement of the reference count of an object that is not owned at this point by
- VS2010下内存泄露调试经历
- 使用Visual调试库检测内存泄露
- 内存泄露调试之 visual leak detector 工具【转】
- 内存泄露:a CDynLinkLibrary object at...的解决 3ff0
- 内存泄露:a CDynLinkLibrary object at...的解决
- 内存泄露:a CDynLinkLibrary object at...的解决
- 内存泄露调试工具visualleakdetector使用方法
- 内存、句柄泄露检测与调试
- 使用Xcode和Instruments调试解决iOS内存泄露
- 最新版 使用Xcode6.4 和Instruments、Leaks调试解决iOS内存泄露
- 内存泄露检测工具 -- Visual Leak Detector
- VS2010 检查内存泄露的方法
- C++内存泄露调试检测
- 使用Xcode和Instruments调试解决iOS内存泄露
- 使用_CrtSetBreakAlloc调试内存泄露
- 使用Xcode和Instruments调试解决iOS内存泄露
- 内存泄露检测工具 Visual Leak Detector for Visual C++ 2008/2010
- linux下调试内存泄露的利器Valgrind