_CrtDumpMemoryLeaks, MFC & regular dll
От: Nikita G  
Дата: 02.11.04 15:19
Оценка:
Здравствуйте

Наткнулся на проблему и не вижу очевидного решения. Есть MFC-application, который использует regular dll (обычная dll с какими-то функциями). Итого, при завершении приложения получаю в output кучу сообщений об утечках памяти в моей dll. Причина в том что MFC dll выгружается раньше моей dll и вызывает _CrtDumpMemoryLeaks из _AFX_DEBUG_STATE::~_AFX_DEBUG_STATE. В этот момент деструкторы глобальных переменных из моей dll еще не отработали, и _CrtDumpMemoryLeaks фиксирует утечки.



_AFX_DEBUG_STATE::~_AFX_DEBUG_STATE()
{
#ifndef _AFX_NO_DEBUG_CRT
_CrtDumpMemoryLeaks();
int nOldState = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
_CrtSetDbgFlag(nOldState & ~_CRTDBG_LEAK_CHECK_DF);

_CrtSetReportHook(pfnOldCrtReportHook);
_CrtSetDumpClient(pfnOldCrtDumpClient);
#endif // _AFX_NO_DEBUG_CRT
}



Не думаю что я первый кто с этим сталкивается, что посоветуете ?

// Никита
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.