Python 发表于 2018-5-22 19:36:00

_MSC_VER - MicroSoft微软MS VC++编译器版本号概念 对应MS VS一览

_MSC_VER - MicroSoft微软MS VC++编译器版本号概念 对应MS VS一览
_MSC_VER 是微软公司推出的 C/C++ 编译器在 ANSI/ISO C99 标准之外扩展的宏定义,用来定义当前微软公司自己的编译器的主版本。
注意:_MSC_VER 并不是 Visual Studio 版本号,也不是 Visual C++ 版本号。
_MSC_VER 可用字符 MSC v.1912 64 bit (AMD64) 表示;其中 19 为 MS VC++ 编译器 _MSC_VER 主版本号,12 为次版本号。
譬如:假设当前使用的 Visual C++ 编译器版本号是15.00.20706.01 (MS VC++ 2008),那么 _MSC_VER 主版本号就为 "15",次版本号为 "00",因此,当前编译器预定义的 _MSC_VER 宏值为 1500。
Microsoft Visual Studio --> Help --> About 看到的 Version 值,是 Visual Studio 版本号,不是 VC++ 编译器版本号。
VC++ 编译器在 Visual Studio 里指的是 "cl.exe",开始 --> 所有程序 --> Microsoft Visual Studio 20** --> Visual Studio Tools --> Visual Studio 20** Command Prompt --> 进入 VC++ 20** 命令行 --> 运行 cl /? 即可看到
Microsoft Visual Studio 2005 的 _MSC_VER 信息如下所示:Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86

Copyright (C) Microsoft Corporation. All rights reserved.其中 "14.00.50727.762" 就是版本号,对应的 _MSC_VER 的值就是 1400
14.00.50727.762 的 4 部分依次为:主版本号、次版本号、生成版本号和修订号,还有两个相关宏 _MSC_FULL_VER:值为 140050727,_MSC_BUILD:值为 762。
智能编辑重构 批处理式 数字 Python IDE 集成开发环境 (集成高效 Cython PyInstaller 批处理小程序)http://dt.digitser.cn/zh-CN/ide/idepy/index.html
编译程序
在程序源代码中加入 _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
http://forum.digitser.cn/data/attachment/forum/201704/08/012711ykfk0kbkkb3p8608.png
截止 2021.05.03,下表已停止维护,最新 最全内容见以下文档链接:
微软 Visual Studio 版本历史http://wiki.digitser.cn/zh-CN/msvs/history.html
Microsoft Visual Studio 版本历史
时间名称内部版本C 类语言Basic 类语言Java 类语言其他语言.NET Framework 版本_MSC_VER备注
1995.04Visual Studio4.0Visual C++ 4.0Visual Basic 3.0Visual FoxPro 4.0初版
1997.02Visual Studio 975.0Visual C++ 5.0Visual Basic 5.0Visual J++ 1.1Visual FoxPro 5.0
1100
1998.06Visual Studio 6.06.0Visual C++ 6.0Visual Basic 6.0Visual J++ 6.0Visual FoxPro 6.0
1200
2002.02Visual Studio .NET 20027.0Visual C++ 2002
Visual C# 2002Visual Basic 2002Visual J# 1.0-1.01300去除 FoxPro 与 J++,以 J# 取代 J++
2003.04Visual Studio .NET 20037.1Visual C++ 2003
Visual C# 2003Visual Basic 2003Visual J# 1.1-1.11310

2005.11Visual Studio 20058.0Visual C++ 2005
Visual C# 2005Visual Basic 2005Visual J# 2.0-2.01400微软将 .NET 由产品名称中移除
2007.11Visual Studio 20089.0Visual C++ 2008
Visual C# 2008Visual Basic 2008--2.0、3.0、3.51500去除 J#
2010.04Visual Studio 201010.0Visual C++ 2010
Visual C# 2010Visual Basic 2010-Visual F#2.0、3.0、3.54.01600加入 F#
2012.08Visual Studio 201211.0Visual C++ 2012
Visual C# 2012Visual Basic 2012
Visual F# 20122.0、3.0、3.54.0、4.51700

2013.10Visual Studio 201312.0Visual C++ 2013
Visual C# 2013Visual Basic 2013
Visual F# 20132.0、3.0、3.54.0、4.5、4.5.1、4.5.21800

2014.11Visual Studio 201514.0Visual C++2015
Visual C# 2015Visual Basic 2015
Visual F# 20152.0、3.0、3.54.0、4.5、4.5.1、4.5.3、4.5.5、4.61900首次发布 Visual Studio Community 版
供开发者、开源社区、学术研究、教育、小型团队长期免费使用
2015.07Visual Studio 2015 RTM14.0Visual C++2015
Visual C# 2015Visual Basic 2015
Visual F# 20152.0、3.0、3.54.0、4.5、4.5.1、4.5.3、4.5.5、4.65.0、6.01900基于 .NET Framework 4.5.2
RTM: Release to Manufacturing
2017.03Visual Studio 201715.0Visual C++ 2017
Visual C# 2017Visual Basic 2017
Visual F# 20172.0、3.0、3.54.0、4.5、4.5.1、4.5.3、4.5.5、4.65.0、6.0
基于 .NET Framework 4.6

http://forum.digitser.cn/data/attachment/forum/201605/19/132155fevczeyds5e5y1wy.jpg
扫一扫关注 德云社区 微信公众号
版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载。
页: [1]
查看完整版本: _MSC_VER - MicroSoft微软MS VC++编译器版本号概念 对应MS VS一览