修改WINVER、_WIN32_WINNT和_MSC_VER

1.WINVER和_WIN32_WINNT
        Visual C++已经不再支持Windows 95, Windows 98, Windows ME, Windows NT or Windows 2000。如果你的WINVER或_WIN32_WINNT宏被指定为以上这些windows版本,你必须修改该宏。当你升级用早期版本的Visual C++写的项目,可能会碰到与WINVER或_WIN32_WINNT宏相关的兼容性错误,如果这些宏被指定为不再支持的windows版本。
        在Windows 95, Windows 98, Windows ME这一分支的操作系统中,Windows的定义的版本宏是_WIN32_WINDOWS。与此同时,Windows重新开发了NT系列,且其编号从NT4.0开始,经过Windows 2000,XP, Server 2003,Vista,Server2008,Win7,Win8,Win10。 在这一分支中,Windows定义的版本宏是_WIN32_WINNT。_WIN32_WINDOWS宏便被废弃了。

WINVER是_WIN32_WINDOWS或_WIN32_WINNT的别名。在SDK的sdkddkver.h中有其定义,可见WINVER<=>_WIN32_WINNT宏的值,如下图所示:

 

Window各个版本对应的宏值如下图所示:

 

由于我用的是Win7,所以显示到win7就结束了。

2._MSC_VER
_MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值。
MS VC++ 12.0 _MSC_VER = 1800 (Visual C++ 2013)
MS VC++ 11.0 _MSC_VER = 1700 (Visual C++ 2012)
MS VC++ 10.0 _MSC_VER = 1600(Visual C++ 2010)
MS VC++ 9.0 _MSC_VER = 1500
MS VC++ 8.0 _MSC_VER = 1400
MS VC++ 7.1 _MSC_VER = 1310
MS VC++ 7.0 _MSC_VER = 1300
MS VC++ 6.0 _MSC_VER = 1200
MS VC++ 5.0 _MSC_VER = 1100

在程序中加入_MSC_VER宏可以根据编译器版本让编译器选择性地编译一段程序。例如一个版本编译器产生的lib文件可能不能被另一个版本的编译器调用,那么在开发应用程序的时候,在该程序的lib调用库中放入多个版本编译器产生的lib文件。在程序中加入_MSC_VER宏,编译器就能够在调用的时根据其版本自动选择可以链接的lib库版本,如下所示。

#if _MSC_VER >= 1400 // for vc8, or vc9
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc8-d.lib" )
#elif
#pragma comment( lib, "SomeLib-vc8-r.lib" )
#endif
#elif _MSC_VER >= 1310 // for vc71
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc71-d.lib" )
#elif
#pragma comment( lib, "SomeLib-vc71-r.lib" )
#endif
#elif _MSC_VER >=1200 // for vc6
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc6-d.lib" )
#elif
#pragma comment( lib, "SomeLib-vc6-r.lib" )
#endif
#endif

 

参考链接:https://msdn.microsoft.com/en-us/library/6sehtctf.aspx

参考链接:http://www.cnblogs.com/zhcncn/archive/2013/05/21/3091052.html

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草上爬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值