抱歉格式不佳 - 在手机上写这个。
退出我的MFC(也是cli)应用程序时,我收到许多虚假内存泄漏。
经过调查,MFC AfxDiagnosticInit函数被过早调用,因此在调用CWinApp析构函数之前发生内存泄漏转储,导致许多误报内存泄漏
如何确保更快地调用AfxDiagnosticInit,以便在泄漏转储开始之前调用我的静态变量析构函数(例如CMyApp)?
答案 0 :(得分:1)
只是跟进:我发现了真正的问题,这与它是混合模式C ++ / CLI应用程序这一事实有关,并且CLI不允许CRT关闭。
此处修改了问题: Mixed-mode C++/CLI app not shutting down CLR correctly
答案 1 :(得分:0)
尝试查找WinMain()
,构建CWinApp的功能相同,并在其中放置AfxDiagnosticInit()
。
答案 2 :(得分:0)
作为替代解决方案,您还可以使用以下命令禁用MFC的自动内存泄漏转储:
AfxEnableMemoryLeakDump(FALSE);
自Visual Studio 2010起支持此功能。有关文档,请参阅here。
您可以使用_CrtDumpMemoryLeaks();