首页 > 其他 > 详细

MFC中头文件和预定义宏

时间:2014-04-12 13:00:30      阅读:530      评论:0      收藏:0      [点我收藏+]

      1.防止头文件中定义的类、全局变量和宏的定义出现重定义
  
  #if !defined(ASDFLAKSDJFOAIWJEF) //#ifndef ()
  #define ASDFLAKSDJFOAIWJEF
  ...
  #endif//!defined(ASDFLAKSDJFOAIWJEF)
  
  2.避免#include时头文件被重复打开
  
  #if MSCVER>1000
  # pragma once
  #endif //MSCVER>1000
  
  (vc++1.0是Microsoft c/c++7.0的后继版本,MSCVER = 1000对应于VC++4.0版本。)
  对于VC++4.0及以后版本,指定该文件在一次建立中只被编译一次
  
  3.确保连接MFC核心和基本组成部分
  #ifndef AFXWINH
   #error include ’stdafx.h’before including this file for PCH
  #endif
  是否定义AFXWINH宏表示是否包括了头文件afxwin.h,该头文件提供与“MFC核心和基本组成部分”连接接口。
  MFC AppWizard总是构造atdafx.h来包含afxwin.h,因此,对MFC AppWizard生成的项目来说,是否包括afxwin.h头文件的关键在于是否

包括了头文件stdafx.h。
  在生成预编译头文件PCH的时候,首先要打开afxwin.h,然后才能打开本文件。
  
  4.连接资源
  #include “resource.h” //main symbols
  头文件resource.h是项目中Windows资源代码与可执行代码的唯一接口文件。
  
  5.为调试版本添加诊断服务功能
  #ifdef DEBUG
  #define new DEBUGNEW
  #undef THISFILE
  static char THISFILE[] = FILE;
  #endif
  首先,用“#ifdef DEBUG”判断生成执行代码的模式,在调试模式(定义了DEBUG符号时)下,使用“DEBUGNEW”宏代替“new”操作。
  “#define new DEBUGNEW”用于帮助发现内存泄露。即用DEBUGNEW来代替new。
  DEBUGNEW纪录它所分配的每个对象的文件名和行号。当程序员使用CMemoryState::DumpAllObjectsSince成员函数时,每个用DEBUGNEW

分配的对象将与发生分配的文件名和行号一起显示在Output窗口的debug页面中。

MFC中头文件和预定义宏,布布扣,bubuko.com

MFC中头文件和预定义宏

原文:http://blog.csdn.net/ghevinn/article/details/23461261

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!