[转]_MSC_VER

  _MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值

 

  MS VC++ 10.0 _MSC_VER = 1600

 

  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

 

  其中MS VC++ 10.0就是Visual C++ 2010,MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。版本名称上的的对应关系参见扩展阅读中的参考文献1的链接.

 

  在程序中加入_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" )

 

  #else if

 

  #pragma comment( lib, "SomeLib-vc8-r.lib" )

 

  #endif

 

  #elif _MSC_VER >= 1310 // for vc71

 

  #ifdef _DEBUG

 

  #pragma comment( lib, "SomeLib-vc71-d.lib" )

 

  #else if

 

  #pragma comment( lib, "SomeLib-vc71-r.lib" )

 

  #endif

 

  #elif _MSC_VER >=1200 // for vc6

 

  #ifdef _DEBUG

 

  #pragma comment( lib, "SomeLib-vc6-d.lib" )

 

  #else if

 

  #pragma comment( lib, "SomeLib-vc6-r.lib" )

 

  #endif

 

  #endif

posted @   Atypiape  阅读(266)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示