Microsoft Visual C++ 编译器版本由四个字段组成:
M - 主版本(两位数)
N - 次要版本(两位数)
B - 内部版本(五位数)
R - 修订版本
Microsoft 特定的编译器宏按以下方式对这些字段进行编码:
_MSC_VER = MMNN
_MSC_FULL_VER = MMNNBBB
_MSC_BUILD = R
例如,Visual Studio 2022 版本 17.9.0 的编译器版本为 19.39.33519:
- 主版本是 19
- 次要版本是 39
- 内部版本是 33519
- 修订版本为 0
宏按如下方式反映这些值:
_MSC_VER = 1939_MSC_FULL_VER = 193933519-
_MSC_BUILD(修订)是 0。
Note
Visual Studio 2019 16.8 和 16.9 共享相同的主版本和次要版本,因此具有相同的 _MSC_VER 值。 Visual Studio 2019 16.10 和 16.11 也是一样。 若要区分它们,请使用_MSC_FULL_VER中所述的 。
Visual C++ 编译器版本控制的简要历史
Visual Studio 6.0 到 Visual Studio 2015 (14.0)
对于主版本,
_MSC_VER增加 100。_MSC_FULL_VER增加 10,000,000。对于次要版本,
_MSC_VER增加 10。_MSC_FULL_VER增加 1,000,000。Note
Visual Studio .NET 2003 被视为次要版本。
Visual Studio 2017 及更高版本
- 对于主要版本,次要版本增加 10。
- 对于次要版本,次要版本增加 1,从 Visual Studio 2017 版本 15.3 开始。
从 Visual Studio 2017 开始的服务版本
服务版本由 _MSC_FULL_VER区分开来。 内部版本字段(MMNNBBBBB 版本号中的 BBBBB)通常增加 1。
例如,_MSC_FULL_VER 有用的两个例子是区分 Visual Studio 2019 16.8 与 16.9 以及 Visual Studio 2019 16.10 与 16.11。 这是因为这些版本共享相同的主版本和次要版本,因此具有相同的 _MSC_VER 值。
若要区分这些版本,请使用 _MSC_FULL_VER。
Visual Studio 2019 16.8 的 _MSC_FULL_VER 的最小值为 192829333。
Visual Studio 2019 16.9 的 _MSC_FULL_VER 的最小值为 192829910。
Version macros
回想一下,版本号由四个字段组成:
M - 主版本(两位数)
N - 次要版本(两位数)
B - 内部版本(五位数)
R - 修订版本
_MSC_VER 可区分主版本和次要版本。 它的形式为:MMNN。
_MSC_FULL_VER 表示编译器的主版本、次要版本和内部版本。 它的形式为:MMNNBBBBB。 使用它可以区分不同版本的编译器,包括服务版本。 有关 Visual Studio 2019 16.8、16.9、16.10 和 16.11 的详细信息,请参阅从 Visual Studio 2017 开始的服务版本。
_MSC_BUILD 表示编译器的内部版本。 它的形式为:R。使用它可区分服务版本。
当主版本在 Visual Studio 2013 和 Visual Studio 2015 之间更改时,_MSC_VER 反映了从 1800 到 1900 的更改。
次要版本更改的一个例子是从 Visual Studio 2022 17.1 更改为 Visual Studio 2022 17.2。 在这种情况下,_MSC_VER 从 1931 更改为 1932。
下表列出了对应于每个 Visual C++ 编译器(_MSC_VER)和 MSVC 工具集版本的 Visual Studio 版本:
| Visual Studio 版本 | _MSC_VER |
MSVC 工具集版本 |
|---|---|---|
| Visual Studio 6.0 | 1200 | 6.0 |
| Visual Studio .NET 2002 (7.0) | 1300 | 7.0 |
| Visual Studio .NET 2003 (7.1) | 1310 | 7.1 |
| Visual Studio 2005 (8.0) | 1400 | 8.0 |
| Visual Studio 2008 (9.0) | 1500 | 9.0 |
| Visual Studio 2010 (10.0) | 1600 | 10.0 |
| Visual Studio 2012 (11.0) | 1700 | 11.0 |
| Visual Studio 2013 (12.0) | 1800 | 12.0 |
| Visual Studio 2015 (14.0) | 1900 | 14.0 |
| Visual Studio 2017 RTW (15.0) | 1910 | 14.10 |
| Visual Studio 2017 版本 15.3 | 1911 | 14.11 |
| Visual Studio 2017 版本 15.5 | 1912 | 14.12 |
| Visual Studio 2017 版本 15.6 | 1913 | 14.13 |
| Visual Studio 2017 15.7 版 | 1914 | 14.14 |
| Visual Studio 2017 版本 15.8 | 1915 | 14.15 |
| Visual Studio 2017 版本 15.9 | 1916 | 14.16 |
| Visual Studio 2019 RTW 16.0 | 1920 | 14.20 |
| Visual Studio 2019 版本 16.1 | 1921 | 14.21 |
| Visual Studio 2019 版本 16.2 | 1922 | 14.22 |
| Visual Studio 2019 版本 16.3 | 1923 | 14.23 |
| Visual Studio 2019 版本 16.4 | 1924 | 14.24 |
| Visual Studio 2019 版本 16.5 | 1925 | 14.25 |
| Visual Studio 2019 版本 16.6 | 1926 | 14.26 |
| Visual Studio 2019 版本 16.7 | 1927 | 14.27 |
| Visual Studio 2019 version 16.8, 16.9 a | 1928 | 14.28 |
| Visual Studio 2019 version 16.10, 16.11 b | 1929 | 14.29 |
| Visual Studio 2022 RTW 17.0 | 1930 | 14.30 |
| Visual Studio 2022 版本 17.1 | 1931 | 14.31 |
| Visual Studio 2022 版本 17.2 | 1932 | 14.32 |
| Visual Studio 2022 版本 17.3 | 1933 | 14.33 |
| Visual Studio 2022 版本 17.4 | 1934 | 14.34 |
| Visual Studio 2022 版本 17.5 | 1935 | 14.35 |
| Visual Studio 2022 版本 17.6 | 1936 | 14.36 |
| Visual Studio 2022 版本 17.7 | 1937 | 14.37 |
| Visual Studio 2022 版本 17.8 | 1938 | 14.38 |
| Visual Studio 2022 版本 17.9 | 1939 | 14.39 |
| Visual Studio 2022 版本 17.10 | 1940 | 14.40 |
| Visual Studio 2022 版本 17.11 | 1941 | 14.41 |
| Visual Studio 2022 版本 17.12 | 1942 | 14.42 |
| Visual Studio 2022 版本 17.13 | 1943 | 14.43 |
| Visual Studio 2022 版本 17.14 | 1944 | 14.44 |
a Visual Studio 2019 16.8 and 16.9 share the same major and minor versions (and so have the same value for _MSC_VER). 若要区分它们,请使用 _MSC_FULL_VER。 Visual Studio 2019 16.8 的 _MSC_FULL_VER 的最小值为 192829333。 Visual Studio 2019 16.9 的 _MSC_FULL_VER 的最小值为 192829910。
b Visual Studio 2019 16.10 and 16.11 share the same major and minor versions (and so have the same value for _MSC_VER). 若要区分它们,请使用 _MSC_FULL_VER。 Visual Studio 2019 16.10 的 _MSC_FULL_VER 的最小值为 192929917。 Visual Studio 2019 16.11 的 _MSC_FULL_VER 的最小值为 192930129。