首页 > 代码库 > vc判断是32位编译还是64位编译判断是debug编译还是release编译

vc判断是32位编译还是64位编译判断是debug编译还是release编译

  • 来源:http://www.greensoftcode.net/   发布日期:2014-03-28      点击次数:471 发布者IP:119.119.236.22
    • 1.判断是debug编译还是release编译。
      如果_DEBUG定义了表示是debug编译,否则是release编译。


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


      常量\定义 预定义选项 Windows.h VC编译器 
      WIN32 Win32 √(minwindef.h)  × 
      _WIN32 × × √ 
      _WIN64 × × x64

         
      最后附上根据相应编译情况,进行有条件的链接相应静态库的示例代码,其实就是一些宏定义语句的使用:
      #include "json/json.h"
      #ifdef _DEBUG
      #ifndef _WIN64
      #pragma comment(lib,"json/json_mtd.lib")
      #else
      #pragma comment(lib,"json/json_mtd_x64.lib")
      #endif
      #else
      #ifndef _WIN64
      #pragma comment(lib,"json/json_mt.lib")
      #else
      #pragma comment(lib,"json/json_mt_x64.lib")
      #endif
      #endif


      #ifndef _WIN64
       afx_msg void  OnTimer(UINT nIDEvent) ;
      #else if
       afx_msg void OnTimer(UINT_PTR nIDEvent);
      #endif