一些编译过程中的宏定义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DEBUG_NEW

#define new DEBUG_NEW

说明:

帮助查找内存错误。用户在程序中使用DEBUG_NEW,用户通常使用new运算

符来从堆上分配。在Debug模式下(但定义了一个DEBUG符号),DEBUG_NEW 为它分配的每个对象记录文件名和行号。然后,在用户使用CMemoryState::DumpAllObjectSince成员函数时,每个以DEBUG_NEW分配的对象分配的地方显示出文件名和行号。为了使用DEBUG_NEW,应在用户的

资源文件中插入以下指令:#define new DEBUG_NEW 一旦用户插入本指令,预处理程序将在使用new的地方插入DEBUG_NEW,而MFC作其余的工作。但用户编译自己的程序的一个发行版时,DEBUG_NEW便进行简单的new操作,而且不产生文件名和行号消息。

#ifdef _DEBUG //如果定义了_DEBUG,也就是调试版程序,则执行以下三句

#define new DEBUG_NEW //定义new为DEBUG_NEW

#undef THIS_FILE //取消以前对THIS_FILE的定义

static char THIS_FILE[] = __FILE__; //声明并初始化THIS_FILEO数组,数据

的初始数据为该文件的文件名

#endi

相关文档
最新文档