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.
最初称Visual C++ 32-bit Edition[9] 1993年7月发布时,已经有了16位的VC++ 1.5,但这个版本不支持OLE2与ODBC. 套装叫做Visual C++ 16/32-bit Suite, 其中包含了Visual C++ 1.5.[10]
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設計的。[11],引入了Developer Studio IDE,[12]用戶可以通過微軟公司的訂閱服務(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的版本号相同.[13]
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版以來比較大的一次升級。[14]包含了四个版本:
Visual Studio 6.0是惟一不用年份命名的Visual Studio。 MFC DLL的名字没有改变,还是叫做mfc42.dll。發行至今一直被廣泛地用於大大小小的項目開發。[19]但是,這個版本在Windows XP下運行會出現問題,尤其是在調試模式的情況下(例如:靜態變量的值並不會顯示)。這個調試問題可以通過打一個叫「Visual C++ 6.0 Processor Pack」的補丁來解決。奇怪的是,這個網頁強調用戶也必須運行Windows 98、Windows NT 4.0、或Windows 2000。版本号12.00.8804
支持.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格式的資料庫來儲存源碼的相關資訊[21].本版也加入了現代化的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开发。[22]从该版本起,编译出的32位程序不能在Windows NT4.0 / 2000 / XP上运行,这是因为在程序内部使用了自Vista起出现在kernel32.dll中的GetTickCount64函数。解决办法是在编译project的platform set选择为“Visual Studio 2012 - Windows XP (v110_xp) ”。
在Visual C++ 2012以前,完全不支持C99与C11的新特性,仅支持1989年版的ANSI C。[28]Visual C++ 2012开始在C模式下支持C99的部分特性,如designated initializers、compound literals、_Bool类型。Visual C++ 2013很大改进了对C99特性的支持。[29] Visual C++ 2015基本上完整支持了C99标准库,但需要编译器尚未支持的C99语言特性的那部分标准库除外。[30]