Microsoft Visual C++
歷史

微软的C/C++编译器有一个内置的宏_MSC_VER来表示编译器的当前版本。
Visual C++的前身是Microsoft C/C++。还有相关产品：Microsoft QuickC 2.5 与Microsoft Quick C for Windows 1.0. Visual C++ 编译器仍然叫做Microsoft C/C++。例如Visual C++ 2015 Update 2的版本号是19.00.23918.
| 产品 | Codename | 发布日期 | C++版本 | _MSC_VER | MFC版本 | _MFC_VER | ATL版本 | _ATL_VER | 注释 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
16-bit版本
| MSC 1.0 |  | 1983年10月 |  | 100 |  |  |  |  | 基于Lattice C, Microsoft的第一款C产品。遵循K&R C语言标准。售价500美元。 |
| MSC 2.0 |  |  |  | 200 |  |  |  |  | 增加了large model支持 |
| MSC 3.0 |  | 1985年 |  | 300 |  |  |  |  | 第一款Microsoft自己开发的C产品. 目标是兼容K&R与ANSI标准。1984年初微软用它开发了Windows与Xenix。 |
| MSC 4.0 |  |  |  | 400 |  |  |  |  | 增加了优化器与源级调试器CodeView |
| MSC 5.0 |  |  |  | 500 |  |  |  |  | 增加了循环优化与Huge Model (数组大于64k)支持。Microsoft Fortran与80386上第一款32位编译器也是此计划的一部分。 |
| Microsoft C 5.1 Optimizing Compiler |  | 1988年 |  |  |  |  |  |  | 允许OS/2 1.x编译 |
| MSC 6.0 |  | 1989年 |  | 600 |  |  |  |  | 增加了全局流分析、源浏览器、新调试器、可选的C++前端. |
| MS C/C++ 7.0 |  | 1992年 |  | 700 | 1.0 | 0x0100 |  |  | 内建支持C++与MFC 1.0. |
| Visual C++ 1.0 | Caviar | 1993年2月22日 | 1.0 | 800 | 2.0 | 0x0200 |  |  | Cfront 2.1 兼容。IDE称“Visual Workbench”。有两个版本: Standard – 替换“QuickC for Windows”。售价199美元。  Professional – 替换 C/C++ 7.0. 可建构 DOS与Windows应用程序。包含了优化编译器、源profiler, Windows 3.1 SDK。以及Phar Lap 286 DOS Extender Lite售价499美元。 |
| Visual C++ 1.1 | Barracuda | 1993 | 1.1 |  |  |  |  |  |  |
| Visual C++ 1.5 | Dolphin | 1993年12月 | 1.5 | 850 | 2.5 | 0x0250 |  |  | 增加了OLE 2.0与ODBC 支持. 是首款仅用CD-ROM发布的Visual C++.這個版本-{只}支持16位开发。 |
| Visual C++ 1.51 |  |  | 1.5 |  |  |  |  |  | 作为subscription service可利用 |
| Visual C++ 1.52 |  |  | 1.52 |  |  |  |  |  | 作为subscription service可利用 |
| Visual C++ 1.52b |  |  | 1.52b |  |  |  |  |  | 类似于1.52, 但不包括Control Development Kit |
| 'Visual C++ 1.52c |  |  | 1.52c |  |  |  |  |  | 是1.5的加补丁版. 是最后一版，也是有争议的最为流行的Microsoft Windows 3.x开发平台. 可通过Microsoft Developer Network使用它 |
32-bit版本
| Visual C++ 1.0 |  |  |  |  |  |  |  |  | 最初称Visual C++ 32-bit Edition 1993年7月发布时，已经有了16位的VC++ 1.5，但这个版本不支持OLE2与ODBC. 套装叫做Visual C++ 16/32-bit Suite, 其中包含了Visual C++ 1.5. |
| Visual C++ 2.0 |  |  | 2.0 | 900 | 3.0 | 0x0300 |  |  | 第一個只發行32位的版本。這個版本提前發行了，幾乎成了一個「丟失的版本」。這是因為那個時候Windows 95（開發代碼為"Chicago"）還沒有發行，而Windows NT又只佔有很小的市場份額。該版本用戶可以通過微軟公司的訂閱服務（Microsoft Subscription Service）升級至2.1和2.2版本。微軟公司在這個版本中还包含了升級后的Visual C++ 1.5：2.0版本中包含了Visual C++ 1.51；2.1版本包含了Visual C++ 1.52。Visual C++ 2.x附帶了16位和32位版本的CDK，同時支持Win32s的開發。Visual C++ 2.2及其後續版本不再升級Visual C++ 1.5（儘管它一直被集成至Visual C++ 4.x）。儘管出生的比Windows 95早，這個版本的發行日期還是非常接近Windows 95，可是當Windows 95發行時，Visual C++ 4.0也已經發行了。因此很多程序開發者直接從1.x過渡到4.0，把2.x跳過去了。 |
| Visual C++ 2.1 |  |  | 2.1 |  |  |  |  |  | 可通过订阅服务获得 |
| Visual C++ 2.2 |  |  | 2.2 |  |  |  |  |  | 可通过订阅服务获得 |
| Visual C++ 4.0 | Olympus | 1995-12-11 | 4.0 | 1000 | 4.0 | 0x0400 |  |  | 为与MFC版本号对齐，跳过了VC++3.0版本号。專門為Windows 95以及Windows NT設計的。，引入了Developer Studio IDE，用戶可以通過微軟公司的訂閱服務（Microsoft Subscription Service）升級至4.1版本（包含Microsoft Game SDK）和4.2版本（此版本不再支持Win32s開發）。 为支持老的(Windows 3.x/DOS)项目，还包含了Visual C++ 1.52安装光盘。 VC++ 3.0版本号被跳过，以与MFC 4.0的版本号相同. |
| Visual C++ 4.2 |  |  | 4.2 | 1020 | 4.2 | 0x0420 |  |  | Developer Studio 4.2 |
| Visual C++ 5.0 | Boston | 1997-04-28 | 5.0 | 1100 | 4.21 | 0x0421 | 2.1 | 0x0210 | Visual Studio 97是第一个集成了多个产品 (Visual C++, Visual Basic, Visual J++)。是4.2版以來比較大的一次升級。包含了四个版本： Learning版  Professional,  Enterprise,  RISC. |
| Visual C++ 6.0 | Aspen | 1998年8月 | 6.0 | 1200 | 6.0 | 0x0600 | 3.0 | 0x0300 | Visual Studio 6.0是惟一不用年份命名的Visual Studio。 MFC DLL的名字没有改变，还是叫做mfc42.dll。發行至今一直被廣泛地用於大大小小的項目開發。但是，這個版本在Windows XP下運行會出現問題，尤其是在調試模式的情況下（例如：靜態變量的值並不會顯示）。這個調試問題可以通過打一個叫「Visual C++ 6.0 Processor Pack」的補丁來解決。奇怪的是，這個網頁強調用戶也必須運行Windows 98、Windows NT 4.0、或Windows 2000。版本号12.00.8804 |
| Visual C++ .NET 2002 | Rainier | 2002年 | 7.0 | 1300 | 7.0 | 0x0700 | 7.0 | 0x0700 | 支持鏈接時代碼生成和調試執行時檢查。這個版本還集成了Managed Extension for C++，以及一個全新的用戶界面（與Visual Basic和Visual C#共用）。這也是為什麼Visual C++ 6.0仍然被廣泛使用的一個主要原因。版本号13.00.9466 |
| Visual C++ .NET 2003 | Everett | 2003年 | 7.1 | 1310 | 7.1 | 0x0710 | 7.1 | 0x0710 | 类似于1.52, 但不包括Control Development Kit |
| eMbedded Visual C++ |  |  |  |  |  |  |  |  | 用於Windows CE操作系统。Visual C++作為一個獨立的開發環境被Microsoft Visual Studio 2005所替代。 |
32-bit/64-bit版本
| Visual C++ 2005 | Whidbey | 2005年11月 | 8.0 | 1400 | 8.0 | 0x0800 | 8.0 | 0x0800 | 引進了全新版本的C++/CLI語言以替换Managed C++，以及OpenMP的支持 |
| Visual C++ 2008 | Orcas | 2007年11月 | 9.0 | 1500 | 9.0 | 0x0900 | 9.0 | 0x0900 | 支持.NET 3.5。Visual Studio 2008 Team Suite更同時支援x64與IA-64編譯 |
| Visual C++ 2010 | Dev10 | 2010年4月12日 | 10.0 | 1600 | 10.0 | 0x0A00 | 10.0 | 0x0A00 | Visual C++開發團隊考慮使用SQL Server Compact格式的資料庫來儲存源碼的相關資訊.本版也加入了現代化的C++并行運算庫-Parallel Patterns Library，部分支援C++0x。本版建構於.NET 4.0之上，但仍支持機器碼的編譯。 |
| Visual C++ 2012 | Dev11 | 2012年8月15日 | 11.0 | 1700 | 11.0 | 0x0B00 | 11.0 | 0x0B00 | 支持Windows Runtime开发。从该版本起，编译出的32位程序不能在Windows NT4.0 / 2000 / XP上运行，这是因为在程序内部使用了自Vista起出现在kernel32.dll中的GetTickCount64函数。解决办法是在编译project的platform set选择为“Visual Studio 2012 - Windows XP (v110_xp) ”。 |
| Visual C++ 2013 | Dev12 | 2013年10月17日 | 12.0 | 1800 | 12.0 | 0x0C00 | 12.0 | 0x0C00 | 支持C++11与C99特性，并引入了REST SDK。 RTM version number: 18.0.21005.1  Update 2 version number: 18.00.30501 |
| Visual C++ 2015 | Dev14 | 2015年7月20日 | 14.0 | 1900 | 14.0 | 0x0E00 | 14.0 | 0x0E00 | 改进了对C++11/14支持。 |
| Visual C++ 2017 | Dev15 | 2017年3月7日 | 14.10 | 1910 | 14.10 | 0x0E00 | 14.10 | 0x0E00 | 从此版本开始，MSVC++版本号与Visual Studio版本号不再同步，并且每个子版本都会递增 MSVC++ 14.0  _MSC_VER == 1900 (Visual Studio 2015 version 14.0)。开始支持C++17 |
| Visual C++ 2019 | Dev16 | 2019年4月2日 | 14.20 | 1920 | 14.20 | 0x0E00 | 14.20 | 0x0E00 | 开始支持C++20 |