Il y a une fuite de mémoire dans ma DLL normale, mais le code semble correct. Comment puis-je détecter cette fuite de mémoire ?
Mise à jour : novembre 2007
La fuite de mémoire peut avoir comme cause possible la création par la bibliothèque MFC d'objets temporaires qui sont utilisés dans des fonctions gestionnaires de messages. Dans les DLL normales, la bibliothèque MFC ne libère pas automatiquement la mémoire allouée pour ces objets. Pour plus d'informations, consultez Gestion de la mémoire et tas de débogage ou l'article de la Base de connaissances (en anglais) « Cleaning Up Temporary MFC Objects in _USRDLL DLLs » (Q105286).
Remarquez que le terme USRDLL n'a plus cours dans la documentation Visual C++. Une DLL normale liée de manière statique aux MFC possède les mêmes caractéristiques que l'ancienne USRDLL. Les conseils de l'article de la Base de connaissances s'appliquent également aux DLL normales liées de manière dynamique aux MFC. Les informations fournies par l'article de la Base de connaissances ci-dessus s'appliquent à la fois aux DLL normales liées de manière statique aux MFC et aux DLL normales liées de manière dynamique aux MFC.