_MSC_VER

_MSC_VER是微软的预编译控制。

_MSC_VER可以分解为:

MS:Microsoft的简写。

C: C编译器。

VER:Version的简写。

_MSC_VER的意思就是:Microsoft的C编译器的版本。

微软不同时期,编译器有不同的版本:

MS VC++ 15.0 _MSC_VER = 1910 (Visual Studio 2017)

MS VC++ 14.0 _MSC_VER = 1900 (Visual Studio 2015)

MS VC++ 12.0 _MSC_VER = 1800 (VisualStudio 2013)

MS VC++ 11.0 _MSC_VER = 1700 (VisualStudio 2012)

MS VC++ 10.0 _MSC_VER = 1600(VisualStudio 2010)

MS VC++ 9.0 _MSC_VER = 1500(VisualStudio 2008)

MS VC++ 8.0 _MSC_VER = 1400(VisualStudio 2005)

......

 

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

 

你可能感兴趣的:(C++)