[转] 关于VS中区分debug与release,32位与64位编译的宏定义
2024-10-09 09:43:45
在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.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
using namespace Json;
转自:http://blog.csdn.net/zhuyingqingfen/article/details/24352137
最新文章
- 关于jsp的内置对象request和response的重定向和转化(待补充)
- BZOJ1026: [SCOI2009]windy数[数位DP]
- php 常用数组操作
- Android应用开发-Activity(重制版)
- 一次进程hang住问题分析。。。
- IIS 您要访问的网页有问题,无法显示!
- 有了Hadoop MapReduce, 为什么还要Spark?
- 编辑WCF配置不出现
- PAT乙级 1028. 人口普查(20)
- Interview-Largest independent set in binary tree.
- 关于.net中线程原子性的自我总结
- php pdo和mysqli对比选择
- CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站
- CAS SSO
- MEF IOC使用
- LINUX 笔记-MOUNT
- Docker使用 Supervisor 来管理进程
- 一套强大的vim配置文件+详细注释
- poj 1177 --- Picture(线段树+扫描线 求矩形并的周长)
- java生成pdf文件 --- Table
热门文章
- Linux显示登录Shell信息
- ASP.NET Core轻松入门Bind读取配置文件到C#实例
- 第二篇:数据可视化 - 基本API
- Android5.0以上的项目都会有的按钮点击特效--水波纹
- 【POJ3207】Ikki's Story IV - Panda's Trick
- [SCOI2008]斜堆
- LightOJ1245 Harmonic Number (II)
- 禁ping以及清理系统多余账号说明
- Mysql遇到 is marked as crashed and should be repaired 问题解决方法
- nginx学习之rewrite