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++》
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++》
相关文章推荐
- Visual Studio配置(4):项目属性页-VC++目录
- 【java】Maven项目开发中pom.xml常用配置,不断更新
- ionic 项目的创建的一些常用配置(不断更新中)
- Eclipse进行远程调试linux 环境的tomcat配置 更新maven web项目
- Java实际项目中应用的一些技巧(不断更新)
- VC项目配置基础 (VC6.0 和VC2005)
- 生成VC项目时的一些配置信息
- VC项目配置详解
- VC中如何配置可调试项目
- VC项目配置基础
- Nginx配置使用积累[不断更新]
- Emacs笔记——配置篇(不断更新中)
- 一些VC生成动态链接库的问题记载(不断更新中)
- VC项目配置详解
- VC项目配置详解
- Linux之网络配置(不断更新中)
- emacs使用 -- 默认配置,不断更新中
- 我的vim配置(不断更新中)
- 新的疑问(未解决):VC项目的配置,不是都能在Project -- Properties里设置解决的
- 记录一下项目踩到的一些坑(不断更新)