您的位置:首页 > 其它

VC中项目属性页的配置(不断更新中)

2012-09-06 08:49 316 查看
1.C/C++ -->预处理器 -->预处理器定义:定义源文件的预处理符号,如NODEBUG 相当于在源文件中#define NODEBUG

 2.预处理宏

(1) 平台识别宏

         WIN32:windows32位系统平台

         WIN64:指明是Window 64位系统平台。

         以下不经常用到:        

        _DOS_:MS-DOS 16位系统平台。
        _WIN32_WCE:Window Mobile 32位系统平台。
        _UNIX:UNIX系统平台。
        _POSIX_:POSIX(Portable Operating System Interface of Unix)系统平台。
        _LINUX_:LINUX系统平台。
        _APPLE_/_MAC_:苹果(Macintosh)系统平台。
(2)字符集识别宏
_MBCS/_UNICODE:指明该工程使用的字符集(多字节字符集/UNICODE)。
在“项目属性→配置属性→C/C++→命令行”处将会有/D "_MBCS"或/D "_UNICODE" /D "UNICODE"开关。
(3)UI识别宏
_CONSOLE/_WINDOWS:指明应用程序的类型是控制台程序或窗口程序(CUI/GUI)。
(4)debug/release版本识别宏
_DEBUG/NDEBUG:指明编译版本(Debug/Release)。
3.项目类型特定宏
VC不同的项目类型,有一些特定的宏,以在编译器区分项目类型。
(1)Win32 Static Library项目
VC6.0中:
Project Setting→C/C++(Category:General)→Preprocessor definitions:_LIB
如果选择了MFC Support则_WINDOWS,_AFXDLL
VC2005中:
项目属性→常规→配置类型→静态库(.lib)
项目属性→C/C++→预处理器→预处理器定义:_LIB
(2)Win32 Dynamic-Link Library项目
VC6.0中:
Project Setting→C/C++→Preprocessor definitions:_WINDOWS,_USRDLL,DLL_EXPORTS
VC2005中:
项目属性→常规→配置类型→动态库(.dll)
项目属性→C/C++→预处理器→预处理器定义:_WINDOWS;_USRDLL;DLL_EXPORTS
(3)MFC DLL项目
<1>Regular DLL with MFC statically linked(带静态链接MFC的规则DLL)
VC2005中:
项目属性→C/C++→预处理器→预处理器定义:_WINDOWS;_USRDLL
<2>Regular DLL using shared MFC DLL(使用共享MFC DLL的规则DLL)
VC2005中:
项目属性→C/C++→预处理器→预处理器定义:_WINDOWS;_USRDLL
<3>MFC Extension DLL(using shared MFC DLL)(MFC扩展DLL)
VC2005中:
项目属性→C/C++→预处理器→预处理器定义:_WINDOWS;_AFXEXT
在DLL项目中,_USRDLL宏表示生成Export Lib!
3.其他常用宏
__FILE__/__LINE__
__FILE__为包含当前程序文件名的路径字符串,例如C:/Program Files/Microsoft Visual Studio/VC98/INCLUDE/stdio.h;__LINE__为当前程序代码行号,从1开始的整数。
__STDC__/__cplusplus
当编译标准C (ANSI C)程序时,编译器自动定义__STDC__ ;当编译标准C++ 程序时,编译器自动定义__cplusplus。
_MSC_VER:Microsoft Visual C++编译器的版本号。例如VC++6.0为1200,VC++8.0为1400,以此类推。
WIN32_LEAN_AND_MEAN告诉编译器不加载MFC(Not Using MFC)。
 
关于VC编译器预处理宏,参考:
AFXDLL和 _AFXEXT
Predefined Macros(VC6.0)》
C/C++ Preprocessor Reference-Predefined Macros(VC8.0)》
What’s the difference between the WIN32 and _WIN32 defines in C++
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  2010