vc判断是32位编译还是64位编译判断是debug编译还是release编译
2018-03-08 12:18
309 查看
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
如果_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
相关文章推荐
- vc判断是32位编译还是64位编译判断是debug编译还是release编译
- 关于代码中区分debug与release、32位与64位、xp还是win7编译的宏定义
- VC2010 中使用条件编译判断是32位还是64位编译模式
- VC判断系统是64位还是32位
- VC判断系统和进程是64位还是32位
- GCC 64位程序的makefile条件编译心得——32位版与64位版、debug版与release版(兼容MinGW、TDM-GCC)
- GCC 64位程序的makefile条件编译心得——32位版与64位版、debug版与release版(兼容MinGW、TDM-GCC)
- 关于VS中区分debug与release,32位与64位编译的宏定义
- GCC 64位程序的makefile条件编译心得——32位版与64位版、debug版与release版(兼容MinGW、TDM-GCC)
- VC判断系统和进程是64位还是32位
- 关于VS中区分debug与release,32位与64位编译的宏定义
- VC++如何判断当前操作系统是32位还是64位?
- VC++如何判断当前操作系统是32位还是64位
- VC程序里判断系统是64位还是32位的正确方法.
- VC程序里判断系统是64位还是32位的正确方法.
- GCC 64位程序的makefile条件编译心得——32位版与64位版、debug版与release版(兼容MinGW、TDM-GCC)
- VC程序里判断系统是64位还是32位的正确方法
- 关于VS中区分debug与release,32位与64位编译的宏定义
- Android获取32位应用签名及如何判断该签名为debug还是release
- GCC 64位程序的makefile条件编译心得——32位版与64位版、debug版与release版(兼容MinGW、TDM-GCC)