Je travaille sur un projet MFC Visual C++. Comme je comprends de MSDN, _CrtDumpMemoryLeaks()
devrait retourner TRUE
quand il y a des fuites de mémoire._CrtDumpMemoryLeaks() == 1 sur la première ligne de code?
Après l'avoir remarqué est TRUE, j'ai essayé de trouver le premier point dans le code où il devient TRUE. Évidemment, c'est vrai dès le début. Si je clique F10 (étape-over) pour démarrer le débogage du programme, et entrer _CrtDumpMemoryLeaks()
dans la fenêtre de la montre, il montre TRUE avant même la première ligne de code, dans le point d'entrée au programme:
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);
}
également , J'ai spéculé que peut-être les installations de débogage ne sont pas initialisées à ce point et que le TRUE est erroné. J'ai donc mis un point d'arrêt à la première ligne de la fonction OnInitDialog()
et là aussi la valeur est TRUE.
Pourquoi ai-je des fuites de mémoire au début du programme?