本主题适用于:
| 版本 | Visual Basic | C# | F# | C++ | Web Developer | 
|---|---|---|---|---|---|
| 学习版 | .gif) | .gif) | .gif) | 仅限本机 | .gif) | 
| 专业版、高级专业版和旗舰版 | .gif) | .gif) | .gif) | 仅限本机 | .gif) | 
必须先启用诊断跟踪,然后才能使用内存诊断功能。
启用或禁用内存诊断
- 调用全局函数 AfxEnableMemoryTracking 来启用或禁用诊断内存分配器。 由于默认情况下内存诊断在调试库中是打开的,所以通常会使用该函数暂时关闭内存诊断,这会提高程序执行速度并减少诊断输出。
使用 afxMemDF 选择特定内存诊断功能
- 如果希望对内存诊断功能进行更精确的控制,可以通过设置 MFC 全局变量 afxMemDF 的值,来有选择地打开和关闭单个内存诊断功能。 该变量可以具有下列值(由枚举类型 afxMemDF 所指定)。 - 值 - 含义 - allocMemDF - 打开诊断内存分配器(默认)。 - delayFreeMemDF - 在调用 delete 或 free 时延迟释放内存,直到程序退出。 这将使您的程序分配可能的最大内存量。 - checkAlwaysMemDF - 每次分配或释放内存时均调用 AfxCheckMemory。 - 可以通过执行逻辑 OR 操作来组合使用这些值,如下所示: - afxMemDF = allocMemDF | delayFreeMemDF | checkAlwaysMemDF;