如何:启用内存诊断

更新:2007 年 11 月

本主题适用于:

版本

Visual Basic

C#

C++

Web Developer

速成版

主题不适用 主题不适用

仅限本机

主题不适用

标准版

主题不适用 主题不适用

仅限本机

主题不适用

专业团队版

主题不适用 主题不适用

仅限本机

主题不适用

表格图例:

主题适用

适用

主题不适用

不适用

主题适用,但命令默认情况下隐藏

默认情况下隐藏的一条或多条命令。

必须先启用诊断跟踪,然后才能使用内存诊断功能。

启用或禁用内存诊断

  • 调用全局函数 AfxEnableMemoryTracking 来启用或禁用诊断内存分配器。由于默认情况下内存诊断在调试库中是打开的,所以通常会使用该函数暂时关闭内存诊断,这会提高程序执行速度并减少诊断输出。

使用 afxMemDF 选择特定内存诊断功能

  • 如果希望对内存诊断功能进行更精确的控制,可以通过设置 MFC 全局变量 afxMemDF 的值,来有选择地打开和关闭单个内存诊断功能。该变量可以具有下列值(由枚举类型 AfxMemDF 所指定):

    含义

    allocMemDF

    打开诊断内存分配器(默认)。

    delayFreeMemDF

    在调用 deletefree 时延迟释放内存,直到程序退出。这将使您的程序分配可能的最大内存量。

    checkAlwaysMemDF

    每次分配或释放内存时均调用 AfxCheckMemory

    可以通过执行逻辑 OR 操作来组合使用这些值,如下所示:

    AfxMemDF = allocMemDF | delayFreeMemDF | checkAlwaysMemDF;
    

请参见

其他资源

MFC 中的内存泄漏检测