1. _MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值(参见扩展阅读中的参考文献2的链接)
MS VC++ 10.0 _MSC_VER = 1600
MS VC++ 9.0 _MSC_VER = 1500
MS VC++ 8.0 _MSC_VER = 1400
MS VC++ 7.1 _MSC_VER = 1310
MS VC++ 7.0 _MSC_VER = 1300
MS VC++ 6.0 _MSC_VER = 1200
MS VC++ 5.0 _MSC_VER = 1100
MicroSoft C++ Version,#pragma预编译指令应该是在这个值大于1000的时候才出现的,所以现在的vs2008之后貌似都不用再判断这个值了。
2.#if !defined(AFX_DLGCALC_H__F42970C4_9047_11D2_8E53_006008A82731__INCLUDED_)
#define
AFX_DLGCALC_H__F42970C4_9047_11D2_8E53_006008A82731__INCLUDED_
这是vc6及更低版本的防止同个头文件,被重复include之后,被重复编译的一贯做法。
在vs2003及更高版本,可以用 #pragma once 来替代类似的功能。
3.UNICODE _UNICODE __T _T __TEXT _TEXT L TEXT宏
http://www.cnblogs.com/ini_always/archive/2011/05/20/2050517.html
4.宏有时候可以作开关,需要时候打开,不需要时候关闭

本文介绍了MFC C++中的一些关键宏和预编译指令,包括_MSC_VER用于识别编译器版本,#if defined避免重复包含头文件,以及#pragma once、UNICODE、DEBUG_NEW等宏的用途。还提到了DDX_***()函数用于数据交换,WINVER和相关的版本宏用于适配不同Windows系统,以及#pragma comment设置程序依赖和#import导入COM组件。

2174

被折叠的 条评论
为什么被折叠?



