关于VS中区分debug与release,32位与64位编译的宏定义

来源:互联网 发布:n86软件 编辑:程序博客网 时间:2024/05/21 10:46
在vs编程中,常常涉及到32位和64位程序的编译,怎么判断当前编译是32位编译还是64位编译?如何判断

是debug下编译还是release下编译?因为之前用到,这里记录一下,省的忘了又要疯狂的google。

1.判断是debug编译还是release编译。
如果_DEBUG定义了表示是debug编译,否则是release编译。

2.判断是32位编译还是64位编译。
在 Win32 配置下,_WIN32 有定义,_WIN64 没有定义。在 x64 配置下,两者都有定义。即在 VC 下,_WIN32 一定有定义
因此,WIN32/_WIN32 可以用来判断是否 Windows 系统(对于跨平台程序),而 _WIN64 用来判断编译环境是 x86 还是 x64。附一个表:

常量\定义预定义选项Windows.hVC编译器WIN32Win32√(minwindef.h) ×_WIN32××√_WIN64××x64
   
最后附上根据相应编译情况,进行有条件的链接相应静态库的示例代码,其实就是一些宏定义语句的使用:

[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. #include "json/json.h"  
  2. #ifdef _DEBUG  
  3. #ifndef _WIN64  
  4. #pragma comment(lib,"json/json_mtd.lib")  
  5. #else  
  6. #pragma comment(lib,"json/json_mtd_x64.lib")  
  7. #endif  
  8. #else  
  9. #ifndef _WIN64  
  10. #pragma comment(lib,"json/json_mt.lib")  
  11. #else  
  12. #pragma comment(lib,"json/json_mt_x64.lib")  
  13. #endif  
  14. #endif  
  15. using namespace Json;  
2 0
原创粉丝点击