MFC中头文件和预定义宏
来源:互联网 发布:使命召唤10 知乎 编辑:程序博客网 时间:2024/06/06 14:11
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中头文件和预定义宏
- MFC中头文件和预定义宏
- C语言之头文件预定义宏的作用
- MFC 中常用宏的含义|visual c++中预定义的宏
- MFC中ODBC的头文件
- ccnSim中预定义的路径文件
- MFC 类和头文件对应关系
- C51中预定义宏
- MFC头文件
- 关于MFC中resource.h头文件中宏的说明
- ARM编译器中预定义的宏
- ARM编译器中预定义的宏
- ADS中添加预定义的宏
- C标准中预定义宏
- C语言中预定义的宏
- 1.c++中预定义宏_func_
- gcc中预定义的宏__GNUC__
- MFC中两个头文件相互包含出错的解决方法
- hdu1009简单的贪心问题
- iOS开发-苹果开发者账号注册、申请续费整个流程
- 对信号与系统中卷积的理解
- Android中的EditText默认时不弹出软键盘的方法
- QQ浏览器上线安全联盟认证 保护网购安全
- MFC中头文件和预定义宏
- POJ - 2976 Dropping tests(二分搜索:最大化平均值)
- 将DataSet转换成List
- spring配置文件,在 publicId 和 systemId 之间需要有空格。
- 求字符串的最长重复子串,子串可以相交
- 幼儿园中毒系人为投毒原为何故?
- QQ浏览器上线安全联盟认证 保护网购安全
- iOS: FFmpeg编译和使用问题总结
- c++中new的重载看内存泄漏