Visual Studio版本号对应表

最近更新:2025-11-09 09:37:00

从一个外行角度看,VC/VS有3种版本号,具备一定的迷惑性:(xx表示具体的数字)

MSVC++ xx(VC版本 eg. VC6.0)

_MSC_VER xx

VisualStudio xx(VS版本 eg. VS2012)

对照关系整理如下(更新至2022.3.26):

VC 版本 _MSC_VER宏的值 VS 版本 MSVC toolset version
VS 6.0 1200 VS 6.0
VS 7.0 1300 VS2002
VS 7.1 1310 VS2003
VS 8.0 1400 VS2005 80
VS 9.0 1500 VS2008 90
VS 10.0 1600 VS2010 100
VS 11.0 1700 VS2012 110
VS 12.0 1800 VS2013 120
VS 14.0 1900 VS2015 140
VS 15.0 [1910,1916] VS2017 141
VS 16.0 [1920,1929] VS2019 142
VS 17.0 [1930,1949] VS2022 143
VS 18.0 [1950,1959] VS2026 145

对于 VS2022,CMake 文档中 MSVC_VERSION 的信息更新有延迟, 它目前(2024-05-27 15:22:56)仍认为 1939 是最大可能的取值,而 VS2022 17.10.0 版本中 _MSC_VER 这一 c/c++ 宏取值为 1940, cmake 变量 MSVC_VERSION 也变为了 1940.

Table 1. Mapping of VS 2022 update releases to current MSVC versions ( MSVC Toolset Minor Version Number 14.40 in VS 2022 v17.10
)

Visual Studio Releases Updates with new MSVC Tools MSVC version _MSC_VER End of Support
Visual Studio 2022 GA (Version 17.0) LTSC 19.30.30705 1930 Jul 11, 2023
Version 17.1 19.31.31103 1931 May 10, 2022
Version 17.2 LTSC 19.32.31326 1932 Jan 9, 2024
Version 17.3 19.33.31629 1933 Nov 8, 2022
Version 17.4.14 LTSC 19.34.31948 1934 Jul 11, 2024
Version 17.5.3 19.35.32216 1935 May 16, 2023
Version 17.6.11 LTSC 19.36.32544 1936 Jan 9, 2025
Version 17.7.7 19.37.32826 1937 Nov 14, 2023
Version 17.8.6 LTSC 19.38.33135 1938 Jul 8, 2025
Version 17.9 19.39.xxxxx 1939 TBD
Version 17.10 19.40.xxxxx 1940 TBD

_MSC_VER 使用举例

拿到一个别人给的静态库文件 foo.lib (不是 dll 配套的导入库),反推出编译它的 MSVC 编译器版本

进入 Developer PowerShell for VS 2022, 执行:

dumpbin /all foo.lib | findstr _MSC_VER

输出举例:

 00000040: 4D 41 54 43 48 3A 22 5F 4D 53 43 5F 56 45 52 3D  MATCH:"_MSC_VER=
   /FAILIFMISMATCH:_MSC_VER=1900
  00000010: 43 48 3A 22 5F 4D 53 43 5F 56 45 52 3D 31 39 30  CH:"_MSC_VER=190
   /FAILIFMISMATCH:_MSC_VER=1900
  00000010: 43 48 3A 22 5F 4D 53 43 5F 56 45 52 3D 31 39 30  CH:"_MSC_VER=190
   /FAILIFMISMATCH:_MSC_VER=1900
  00000010: 43 48 3A 22 5F 4D 53 43 5F 56 45 52 3D 31 39 30  CH:"_MSC_VER=190
   /FAILIFMISMATCH:_MSC_VER=1900

其中 _MSC_VER=1900 表明是 VS2015 编译的。

References

posted @ 2016-10-30 19:28  ChrisZZ  阅读(17600)  评论(0)    收藏  举报