I have tried to assemble together information about the Visual C++ releases, the compiler and the frameworks (MFC and ATL). You can find these on many places, but it is often incomplete or focused on something particular (Visual Studio, C++ compiler, framework, etc.).
The table below is the result of this effort. It is incomplete because it’s not easy to find information about products released more than two decades ago, but if you can help to fill in the gaps please drop a comment with the information you have and I will update the table.
UPDATE: Added information about Visual C++ 2017.
Product | Codename | Release date | C++ version | _MSC_VER | MFC version | _MFC_VER | ATL version | _ATL_VER |
---|---|---|---|---|---|---|---|---|
C 1.0 | 100 | |||||||
C 2.0 | 200 | |||||||
C 3.0 | 300 | |||||||
C 4.0 | 400 | |||||||
C 5.0 | 500 | |||||||
C 6.0 | 1990 | 600 | ||||||
C/C++ 7.0 | 1992 | 700 | 1.0 | 0x0100 | ||||
Visual C++ 1.0 | Caviar | 1993 | 1.0 | 800 | 2.0 | 0x0200 | ||
Visual C++ 1.1 | Barracuda | 1993 | 1.1 | |||||
Visual C++ 1.5 | Dolphin | 1993 | 1.5 | 850 | 2.5 | 0x0250 | ||
Visual C++ 1.51 | 1.5 | |||||||
Visual C++ 1.52 | 1.52 | |||||||
Visual C++ 1.52b | 1.52b | |||||||
Visual C++ 1.52c | 1.52c | |||||||
Visual C++ 2.0 | 2.0 | 900 | 3.0 | 0x0300 | ||||
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 | ||
Visual C++ 4.2 | 4.2 | 1020 | 4.2 | 0x0420 | ||||
1.0 | 0x0100 | |||||||
1.1 | 0x0110 | |||||||
2.0 | 0x0200 | |||||||
Visual Studio 97 | Boston | 1997-04-28 | 5.0 | 1100 | 4.21 | 0x0421 | 2.1 | 0x0210 |
Visual Studio 6.0 | Aspen | 1998 | 6.0 | 1200 | 6.0 | 0x0600 | 3.0 | 0x0300 |
Visual Studio .NET 2002 | Rainier | 2002 | 7.0 | 1300 | 7.0 | 0x0700 | 7.0 | 0x0700 |
Visual Studio .NET 2003 | Everett | 2003 | 7.1 | 1310 | 7.1 | 0x0710 | 7.1 | 0x0710 |
Visual Studio 2005 | Whidbey | 2005 | 8.0 | 1400 | 8.0 | 0x0800 | 8.0 | 0x0800 |
Visual Studio 2008 | Orcas | 2008 | 9.0 | 1500 | 9.0 | 0x0900 | 9.0 | 0x0900 |
Visual Studio 2010 | Dev10 | 2010 | 10.0 | 1600 | 10.0 | 0x0A00 | 10.0 | 0x0A00 |
Visual Studio 2012 | Dev11 | 2012-08-15 | 11.0 | 1700 | 11.0 | 0x0B00 | 11.0 | 0x0B00 |
Visual Studio 2013 | Dev12 | 2013-10-17 | 12.0 | 1800 | 12.0 | 0x0C00 | 12.0 | 0x0C00 |
Visual Studio 2015 | Dev14 | 2015-07-20 | 14.0 | 1900 | 14.0 | 0x0E00 | 14.0 | 0x0E00 |
Visual Studio 2017 | Dev15 | 2017-03-07 | 14.10 | 1910 | 14.10 | 0x0E00 | 14.10 | 0x0E00 |
Visual Studio 2017 15.1 | Dev15 | 2017-04-05 | 14.10 | 1910 | 14.10 | 0x0E00 | 14.10 | 0x0E00 |
Visual Studio 2017 15.2 | Dev15 | 2017-05-10 | 14.10 | 1910 | 14.10 | 0x0E00 | 14.10 | 0x0E00 |
Visual Studio 2017 15.3 | Dev15 | 2017-08-14 | 14.11 | 1911 | 14.11 | 0x0E00 | 14.11 | 0x0E00 |
Visual Studio 2017 15.4 | Dev15 | 2017-10-09 | 14.11 | 1911 | 14.11 | 0x0E00 | 14.11 | 0x0E00 |
Visual Studio 2017 15.5 | Dev15 | 2017-12-04 | 14.12 | 1912 | 14.12 | 0x0E00 | 14.12 | 0x0E00 |
Visual Studio 2017 15.6 | Dev15 | 2018-03-05 | 14.13 | 1913 | 14.13 | 0x0E00 | 14.13 | 0x0E00 |
Visual Studio 2017 15.7 | Dev15 | 2018-05-07 | 14.14 | 1914 | 14.14 | 0x0E00 | 14.14 | 0x0E00 |
Visual Studio 2017 15.8 | Dev15 | 2018-08-14 | 14.15 | 1915 | 14.15 | 0x0E00 | 14.15 | 0x0E00 |
Visual Studio 2017 15.9 | Dev15 | 2018-11-13 | 14.16 | 1916 | 14.16 | 0x0E00 | 14.16 | 0x0E00 |
Visual Studio 2019 16.0 | Dev16 | 2019-04-02 | 14.20 | 1916 | 14.20 | 0x0E00 | 14.20 | 0x0E00 |
Visual Studio 2019 16.1 | Dev16 | 2019-05-21 | 14.21 | 1916 | 14.21 | 0x0E00 | 14.21 | 0x0E00 |
Several notes on the history of VC++:
- Visual Studio 97 was the first product that bundled together several products (Visual C++, Visual Basic, Visual J++)
- Visual Studio 6.0 is the only version of Visual Studio that was not named after the release year, but the version number
- MFC was first release in 1992 with C/C++ 7.0
- MFC 6.0 released with Visual Studio 6 did not change the name of the MFC DLLs, that were still named mfc42.dll
- ATL was first released in between Visual C++ 4.2 and Visual Studio 97. The first release of the framework to be included in a product was ATL 2.1 released with Visual Studio 97
- Visual C++ version 3.0 was skipped to 4.0 to align the product version with the MFC version, whose next version was 4.0
- Visual Studio 2015, the compiler and framework version are 14.0 and not 13.0, a number which was skipped (for the good old superstitions)
- Visual Studio 2017, the compiler version is 14.1, a minor version of 14.0 from Visual Studio 2015, and the runtime is backwards compatible to VC++ 2015. MFC and ATL version remain 14.0 as in Visual Studio 2015.
- _MFC_VER and _ATL_VER macros were initially incorrectly documented in MSDN as 0x1000 instead of 0x0A00
References
Great post. I love such archive notes. Thanks
Marius,
Great table! A couple of comments:
1. The codename for VS 2017 was “Dev15”, externally referred to as VS “15”.
2. EMS Professional Software has a catalog of old MSVC compiler versions with pictures and dates: http://www.emsps.com/oldtools/mscv.htm
3. Wikipedia’s page has an incomplete version of this info. Someone should edit it and link to this. https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B
Thanks for the comments. The Dev17 was an error, I did mean Dev15, so thanks for noticing that one.
Thanks for a great post.
Do you know where can we find a release notes for MFC? The most recent version seems to be 14.10, but I cannot find any features/changes it brings…
I found theese info about previous versions of Visual Studio: https://docs.microsoft.com/en-us/previous-versions/visualstudio/