定制网站开发方案ppt,网络销售工作内容,网站优化报表,wordpress 注册页面今天在网上看到一篇文章#xff0c;关于CMFCVisualManager的内存泄露问题#xff08; 链接是 http://zhanyonhu.blog.163.com/blog/static/1618604420113208121859/#xff09;#xff0c;当然还有其他的关于CMFCButton控件也有内存泄露问题#xff0c;乱七八糟扯蛋#…今天在网上看到一篇文章关于CMFCVisualManager的内存泄露问题 链接是 http://zhanyonhu.blog.163.com/blog/static/1618604420113208121859/当然还有其他的关于CMFCButton控件也有内存泄露问题乱七八糟扯蛋网上很多的误导文章写这个澄清一下。 其实他的文章有误导使用MFC的新特性功能你的应用程序类CXXXApp是要继承于CWinAppEx而不是CWinApp这样就不存在所谓的内存泄露。如果重写了ExitInstance函数最后也要加一句 return CWinAppEx::ExitInstance();附全文摘录如下 VC 2010的MFC函数CMFCVisualManager::GetInstance()可能导致内存泄露。对此VC2010的MFC类库并没有作处理。 导致泄露的代码位置\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\include\afxvisualmanager.h 的 484行。static CMFCVisualManager* __stdcall GetInstance() { if (m_pVisManager ! NULL) { ASSERT_VALID(m_pVisManager); return m_pVisManager; } if (m_pRTIDefault NULL) { m_pVisManager new CMFCVisualManager; //内存泄露代码 } else { m_pVisManager (CMFCVisualManager*) m_pRTIDefault-CreateObject(); ASSERT_VALID(m_pVisManager); } m_pVisManager-m_bAutoDestroy TRUE; m_pVisManager-OnUpdateSystemColors(); return m_pVisManager; } 对VC 2010的此问题可以使用下面的方法修复在C××App中重载虚函数ExitInstance并加入如下代码int C××App::ExitInstance() { CMFCVisualManager * pVisualManagerCMFCVisualManager::GetInstance(); if (pVisualManager!NULL) { delete pVisualManager; } return __super::ExitInstance(); }