Я работаю над проектом MFC Visual C ++.Как я понимаю из MSDN , _CrtDumpMemoryLeaks()
должен возвращать TRUE
при утечках памяти.
После того, как он заметил is TRUE, я попытался найти первоеуказать в коде, где он становится истинным.Очевидно, это правда с самого начала.Если я нажму F10 (пошаговое управление), чтобы начать отладку программы, и введу _CrtDumpMemoryLeaks()
в окне просмотра, оно показывает ИСТИНА еще до первой строки кода, в точке входа в программу:
extern "C" int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
_In_ LPTSTR lpCmdLine, int nCmdShow)
#pragma warning(suppress: 4985)
{
// call shared/exported WinMain
return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}
Кроме того, я предположил, что, возможно, средства отладки не инициализируются в этот момент и что ИСТИНА ошибочна.Поэтому я установил точку останова в первой строке функции OnInitDialog()
и там тоже значение TRUE.
Почему у меня возникают утечки памяти в начале программы?