2010-08-12 176 views
3

是否有人亲自使用由MFC使用AfxEnableMemoryTracking到检测内存泄漏

提供

AfxEnableMemoryTracking函数来检测内存泄漏。它有多有用?

+0

我这个昨天已经发现,我用它来禁用某些情况下,当跟踪泄漏报告(由其他人修复)在调试器中退出我们的应用程序时需要很长的时间才能列出。 M. – Max 2010-08-12 17:37:00

回答

4

内存跟踪在MFC Debug版本中默认启用。如果有必要,AfxEnableMemoryTracking主要用于临时禁用某些代码片段中的内存跟踪。要使用MFC内置内存泄漏检测,确保每.cpp文件包含所有行#include后下面的代码:

 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 
+0

为什么不直接在头文件中定义? – Puppy 2010-08-12 18:11:54

+1

在h文件中重新定义新运算符可能导致许多h文件的编译失败,或者某些库的未定义行为。这就是为什么new运算符仅在本地为.cpp文件定义的原因。 – 2010-08-13 04:59:09