线程中的MFC TRY CATCH宏导致内存泄漏

时间:2015-09-09 09:07:57

标签: multithreading visual-c++ memory-leaks mfc visual-studio-2015

我在函数中有一个简单的try catch块:

TRY
{
    ; // Doesn't matter what is in the try block, I got memory leak just for a simple semicolon!
}
CATCH( COleException, e )
{
    return e->m_sc;
}
END_CATCH

此代码始终在新线程中运行(使用_beginthread),线程可能会多次创建,但线程的生命周期很短。

使用MFC TRY / CATCH宏会导致大量内存泄漏。删除try catch会立即修复泄漏。

使用vs 2015诊断工具我比较了内存​​快照,发现泄漏类型是: _AFX_THREAD_STATE和CThreadData

使用try / catch mfc宏进行此泄漏的原因是什么?

0 个答案:

没有答案