_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。
VS2013 _MSC_VER = 1800
原因:由于你使用了vs2012,相比較vs2010以及之前的vs為更高版本,緻使msvc不相容!
方法:在項目右鍵屬性-配置屬性-正常中,平台工具集選用為合适平台即可,我這裡就選擇 vs2010 (v100).
1 _MSC_VER是微軟C/C++編譯器——cl.exe編譯代碼時預定義的一個宏。
需要針對cl編寫代碼時, 可以使用該宏進行條件編譯。
2 _MSC_VER的值表示cl的版本。
需要針對cl特定版本編寫代碼時, 也可以使用該宏進行條件編譯。
對應關系點此連結檢視。
3 _MSC_VER的類型是"int"
該宏被擴充後,得到的是整數字面值。