Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Microsoft Visual C++
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== History == The predecessor to Visual C++ was called ''Microsoft C/C++''. There was also a ''Microsoft [[QuickC]]'' 2.5 and a ''Microsoft QuickC for Windows'' 1.0. The Visual C++ [[compiler]] is still known as ''Microsoft C/C++'' and as of the release of Visual C++ 2015 Update 2, is on version 14.0.23918.0.{{citation needed|date=May 2021}} === 16-bit versions === * {{anchor|c1}}Microsoft C 1.0, based on [[Lattice C]], was Microsoft's first C product in 1983. It was not [[The C Programming Language|K&R C]] compliant. * C 2.0 added large model support, allowing up to 1MiB for both the Code Segment and Data Segment.<ref>{{Cite book |url=http://archive.org/details/Computer_Language_Issue_06_1985-02_CL_Publications_US |title=Computer Language - Issue 06 (1985-02)(CL Publications)(US) |date=February 1985}}</ref> * C 3.0 was the first version developed inside Microsoft.<ref>{{cite magazine |last=Leibson |first=Steve |date=1985-02-01 |title=Software Reviews: Expert team analyzes 21 C compilers |url=https://archive.org/details/Computer_Language_Issue_06_1985-02_CL_Publications_US/page/n85/mode/2up?q=microsoft+c+3.0 |magazine=Computer Language |access-date=2020-06-05 }}</ref> This version intended compatibility with K&R and the later ANSI standard. It was being used inside Microsoft (for [[Microsoft Windows|Windows]] and [[Xenix]] development) in early 1984. It shipped as a product in 1985. * C 4.0 added optimizations and [[CodeView]], a source-level debugger. * C 5.0 added loop optimizations and [[x86 memory models#Memory models|huge memory model]] ([[Array data structure|arrays]] bigger than 64 KB) support. * C 5.1 released in 1988 allowed compiling programs for OS/2 1.x. The fourteen 5.25" disk (two of which were 1.2 MB, the others 360k) version included QuickC. The eleven 720k 3.5" disk version included with the OS/2 Software Development Kit included MASM 5.1 (a single executable that worked under both MSDOS and OS/2 1.x). * C 6.0 released in 1989 added support for tiny memory model and better support for the ANSI C89 standard (the documentation explicitly says that it is not 100% compliant but it appears to be close enough for practical purposes). It added the ''Programmer's Workbench'' IDE, global flow analysis, a source browser, and a new debugger. To the surprise of many, C++ was not included even though competitors already had offerings.<ref>{{cite web | title = Optimizing With Microsoft C 6.0 | date = August 1, 1990 | url = http://www.drdobbs.com/windows/optimizing-with-microsoft-c-60/184408398 | first = Scott Robert | last = Ladd }}</ref> * C/C++ 7.0 was released in 1992. Dropped OS/2 support. Compilation required a 386 processor plus the included [[DOS extender]], [[386MAX]],<ref>{{cite magazine |last=Myers |first=Ben |date=1992-07-01 |title=Microsoft C/C++ |url=https://books.google.com/books?id=X4152M1DLygC&pg=PA387 |magazine=[[PC Magazine]] |publisher=[[Ziff Davis]] |page=387 |access-date=2023-12-21}}</ref> though for users to be able to target DOS extenders in their own programs they write, one of several later-released [[Third-party source|third-party]] tools was required.<ref>{{cite magazine |author=<!--Staff writer(s); no by-line.--> |title=News/Software Pipeline Announced |url=https://books.google.com/books?id=cTwEAAAAMBAJ&pg=PA17 |magazine=[[InfoWorld]] |publisher=InfoWorld Media Group |date=1993-03-15 |access-date=2023-12-21}}</ref> Added built-in support for [[C++]] and [[Microsoft Foundation Classes|MFC]] (Microsoft Foundation Class Library) 1.0.<ref>Retrieved from http://support.microsoft.com/kb/196831.</ref> * {{anchor|vc1}}Visual C++ 1.0, which included MFC 2.0, was the first version of "Visual" C++, released in February 1993. It was [[Cfront]] 2.1 compliant<ref name="IWreview">{{cite news | title = Visual C++ is a strong development tool | url = https://books.google.ca/books?id=OjsEAAAAMBAJ&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q=Visual%20C%2B%2B%20is%20a%20strong%20development%20tool&f=false | newspaper = [[InfoWorld]] | date = 1993-06-21 | page = 94 | access-date = 2025-04-07 }}</ref> and available in two editions:<ref name="Visual C++ adds Windows support"/> ** Standard: replaced QuickC for Windows. ** Professional: replaced C/C++ 7.0. Included the ability to build both DOS and Windows applications, an [[optimizing compiler]], a source [[profiling (computer programming)|profiler]], and the Windows 3.1 SDK.<ref name="IWreview"/> The [[Phar Lap (company)|Phar Lap]] 286 DOS Extender Lite was also included.<ref>{{cite news | title = Rival DOS Extenders debut at show | newspaper = InfoWorld | date = March 1, 1993 | page = 18 | url = https://books.google.com/books?id=fzwEAAAAMBAJ }}</ref> * Visual C++ 1.5 was released in December 1993, included MFC 2.5, and added [[Object Linking and Embedding|OLE]] 2.0 and [[Open Database Connectivity|ODBC]] support to MFC.<ref>{{cite news | title = Visual C++ 1.5 integrates OLE, ODBC | newspaper = InfoWorld | date = November 8, 1993 | page = 5 | url = https://books.google.com/books?id=8ToEAAAAMBAJ }}</ref> It was the first version of Visual C++ that came only on [[CD-ROM]]. ** Visual C++ 1.51 and 1.52 were available as part of a subscription service. ** Visual C++ 1.52b is similar to 1.52, but does not include the Control Development Kit. ** Visual C++ 1.52c was a patched version of 1.5. It is the last, and arguably most popular, development platform for [[Microsoft Windows]] 3.x. It is available through [[Microsoft Developer Network]]. === Strictly 32-bit versions === * {{anchor|vc1_32}}Visual C++ 1.0 (original name: Visual C++ 32-bit Edition) released in 1993 was the first version for [[Flat memory model#Flat memory model|32-bit]] development (and requiring 32-bit Windows NT as a host) for the [[Intel 386]] architecture.<ref>{{cite news | title = Microsoft set to prerelease 32-bit Visual C++ | newspaper = InfoWorld | date = July 19, 1993 | page = 12 | url = https://books.google.com/books?id=mTsEAAAAMBAJ }}</ref> Although released when [[Intel 286|16-bit]] version 1.5 was available, it did not include support for OLE2 and ODBC. It was also available in a bundle called Visual C++ 16/32-bit Suite, which included Visual C++ 1.5.<ref>{{cite news | title = C++ IDEs evolve | newspaper = InfoWorld | date = April 4, 1994 | page = 79 | url = https://books.google.com/books?id=FTsEAAAAMBAJ }}</ref> * {{anchor|vc2}}Visual C++ 2.0, which included MFC 3.0, was the first version to be 32-bit only. In many ways, this version was ahead of its time, since [[Windows 95]], then codenamed "Chicago", was not yet released, and [[Windows NT]] had only a small market share. Microsoft included and updated Visual C++ 1.5 as part of the 2.x releases up to 2.1, which included Visual C++ 1.52, and both 16-bit and 32-bit version of the Control Development Kit (CDK) were included. Visual C++ 2.x also supported [[Win32s]] development. It is available through [[Microsoft Developer Network]]. There was a Visual C++ 2.0 RISC Edition for [[MIPS architecture|MIPS]] and [[DEC Alpha|Alpha]] processors, as well as a cross-platform edition for the [[Mac (computer)|Macintosh]] ([[68000]] instruction set).<ref>{{cite web|url=http://accu.org/index.php/journals/1771|title=Microsoft Visual C++ Strategy}}</ref> ** Microsoft Visual C++ Cross-Development Edition for the Macintosh was an add-on for Visual C++ that introduced the Windows Portability Library, originally known as Windows Library for Macintosh<ref name="cullens1995" />{{rp|pages=17}} or Windows Layer for the Macintosh (WLM),<ref name="iowa">{{ cite web | url=http://www.iowaconsumercase.org/011607/3000/PX03096.pdf | archive-url=https://web.archive.org/web/20070202162055/http://www.iowaconsumercase.org/011607/3000/PX03096.pdf | url-status=dead | archive-date=2007-02-02 | title=Generalized Evangelism Timeline | publisher=Microsoft Corporation| last1=Plamondon | first1=James | date=9 October 1997 | access-date=27 January 2024 }}</ref>{{rp | pages=16}} allowing developers to write applications against the Win32 and MFC APIs that could be compiled for 68000 architecture Macintosh computers.<ref name="cullens1995">{{ cite book | url=https://archive.org/details/crossplatformdev0000cull/page/15/mode/1up | title=Cross-Platform Development Using Visual C++ | publisher=M&T Books | last1=Cullens | first1=Chane | last2=Blackwell | first2=Ken | isbn=1-55851-428-7 | date=1995 | access-date=27 January 2024 }}</ref> ** Visual C++ 2.1 and 2.2 were updates for 2.0 available through subscription. * {{anchor|vc4}}Visual C++ 4.0, released on 1995-12-11,<ref name="Obsolete Products">{{cite web|url=http://support.microsoft.com/gp/lifeobsoleteproducts |title=Obsolete Products |url-status=dead |archive-url=https://web.archive.org/web/20050814234847/http://support.microsoft.com/gp/lifeobsoleteproducts |archive-date=2005-08-14 }}</ref> introduced the Developer Studio IDE. Its then-novel tiled layout of non-overlapping panels—navigation panel, combination editor/source level debugger panel, and console output panel<ref>{{cite book |last=Toth |first=Viktor |title=Visual C++ 4.0 unleashed |url=https://books.google.com/books?id=93o_AQAAIAAJ&q=visual+c%2B%2B+4.0+unleashed |access-date=26 July 2013 |year=1996 |publisher=[[SAMS Publishing]] |location=Indianapolis |isbn= 9780672308741 |chapter=1 |chapter-url=http://doc.sumy.ua/prog/unleash4/vcu01fi.htm}}</ref>—continues through the [[Microsoft Visual Studio|Visual Studio]] product line (as of 2013). Visual C++ 4.0 included MFC 4.0, was designed for Windows 95 and Windows NT. To allow support of legacy (Windows 3.x/DOS) projects, 4.0 came bundled with the Visual C++ 1.52 installation CD. Updates available through subscription included Visual C++ 4.1, which came with the Microsoft Game SDK (later released separately as the DirectX SDK), and Visual C++ 4.2. Version number 3.0 was skipped to achieve version number parity between Visual C++ 4.0 and MFC 4.0.<ref>{{cite web|url=http://blogs.msdn.com/ricom/archive/2009/10/07/my-history-of-visual-studio-part-3.aspx|title=History of Visual Studio (Part 3)|date=6 August 2021 }}</ref> * {{anchor|vc42}}Visual C++ 4.2 did not support Windows 3.x ([[Win32s]]) development.<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/aa697418(VS.71).aspx|title=Major Changes from Visual C++ 4.0 to 4.2 |access-date=2018-04-18 |archive-url=https://web.archive.org/web/20100228175137/http://msdn.microsoft.com/en-us/library/aa697418(VS.71).aspx |archive-date=2010-02-28}}</ref> This was the final version with a cross-platform edition for the [[Mac (computer)|Mac]] available and it differed from the 2.x version in that it also allowed compilation for the [[PowerPC]] instruction set. * {{anchor|vc5}}Visual C++ 5.0 (bundled with Visual Studio 97) which included MFC 4.21 and was released 1997-04-28,<ref name="Obsolete Products"/> was a major upgrade from 4.2.<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/aa697419(VS.71).aspx|title=Major Changes from Visual C++ 4.2 to 5.0}}</ref> Available in four editions: Learning,<ref>{{cite web|url=http://www.microsoft.com/products/prodref/199_ov.htm|title=Microsoft Visual C++ 5.0 Learning Edition|website=[[Microsoft]] |archive-url=https://web.archive.org/web/19990427114135/http://www.microsoft.com/products/prodref/199_ov.htm|archive-date=April 27, 1999}}</ref> Professional,<ref>{{cite web|url=http://www.microsoft.com/products/prodref/197_ov.htm|title=Microsoft Visual C++ 5.0 Professional Edition|website=[[Microsoft]] |archive-url=https://web.archive.org/web/19990427101205/http://www.microsoft.com/products/prodref/197_ov.htm|archive-date=April 27, 1999}}</ref> Enterprise,<ref>{{cite web|url=http://www.microsoft.com/products/prodref/198_ov.htm|title=Microsoft Visual C++ 5.0 Enterprise Edition|website=[[Microsoft]] |archive-url=https://web.archive.org/web/19990417134138/http://www.microsoft.com/products/prodref/198_ov.htm|archive-date=April 17, 1999}}</ref> and RISC.<ref>{{cite web|url=http://www.microsoft.com/products/prodref/501_ov.htm|title=Microsoft Visual C++ 5.0 RISC Edition|website=[[Microsoft]] |archive-url=https://web.archive.org/web/19990429121236/http://www.microsoft.com/products/prodref/501_ov.htm|archive-date=April 29, 1999}}</ref> * {{anchor|vc6}}Visual C++ 6.0 (commonly known as VC6, and available standalone in Standard, Professional and Enterprise editions, as well as bundled with Visual Studio 6.0), which included MFC 6.0, was released in 1998.<ref name="doj">{{cite news |url=https://www.justice.gov/opa/press-release/file/1092091/download |title=Criminal Complaint |date=June 8, 2018 |first=Nathan P. |last=Shields |publisher=[[United States Department of Justice]] |page=128 |quote=This alone is not a dispositive link, as Visual C++ 6.0, released in 1998, still has proponents mostly because it does not require the installation of Microsoft’s .NET framework in order to run, as later versions of Visual C++ do.}}</ref><ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/aa729389(VS.71).aspx|title=Major Changes from Visual C++ 5.0 to 6.0|archive-url=https://web.archive.org/web/20080914202003/http://msdn.microsoft.com/en-us/library/aa729389(VS.71).aspx|archive-date=September 14, 2008}}</ref> The release was somewhat controversial since it did not include an expected update to MFC. Visual C++ 6.0 is still quite popular and often used to maintain legacy projects. There are, however, issues with this version under Windows XP, especially under the debugging mode (for example, the values of static variables do not display). The debugging issues can be solved with a patch called the "Visual C++ 6.0 Processor Pack".<ref>This page stresses that ''Users must also be running Windows 98, Windows NT 4.0, or Windows 2000.'' Retrieved from http://msdn2.microsoft.com/en-us/vstudio/aa718349.aspx.</ref> Version number: 12.00.8804 * {{anchor|vc7}}Visual C++ .NET 2002 (also known as Visual C++ 7.0), which included MFC 7.0, was released in 2002 with support for link time code generation and debugging runtime checks, .NET 1.0, and [[Visual C Sharp|Visual C#]] and [[Managed Extensions for C++|Managed C++]]. The new user interface used many of the hot keys and conventions of [[Visual Basic]], which accounted for some of its unpopularity among C++ developers.{{Citation needed|date=May 2010}} Version number: 13.00.9466 * {{anchor|vc71}}Visual C++ .NET 2003 (also known as Visual C++ 7.1), which included MFC 7.1, was released in 2003 along with .NET 1.1 and was a major upgrade to Visual C++ .NET 2002, and was the first version to support the C99 "long long" construct. It was considered a patch to Visual C++ .NET 2002. Accordingly, the English language upgrade version of Visual Studio .NET 2003 shipped for minimal cost to owners of the English-language version of Visual Studio .NET 2002. Windows 98 is the lowest officially supported version. Although simple programs will work on Windows 95 and NT 4.0, more complex programs may cause things like ws2_32.dll to be referenced, or functions missing in kernel32.dll. In later versions (Visual C++ 2005) of the compiler even simple programs won't work (unless you replace the C library) because they have a reference to function IsDebuggerPresent in kernel32.dll which only exists in Windows 98 and later.{{Citation needed|date=May 2010}} Version number: 13.10.3077 * eMbedded Visual C++<ref>Douglas Boling :''Programming Microsoft Windows CE .NET, Third Edition'' Microsoft Press; 3rd edition (June 25, 2003) Paperback: 1264 pages {{ISBN|978-0735618848}} - [http://examples.oreilly.de/english_examples/9780735618848/cd_contents/Readme.txt Companion CD with Microsoft eMbedded Visual C++ 4.0 Service Pack 2] {{webarchive|url=https://archive.today/20130211131045/http://examples.oreilly.de/english_examples/9780735618848/cd_contents/Readme.txt |date=2013-02-11 }}</ref> in various versions was used to develop for some versions of the [[Windows CE]] operating system. Initially it replaced a development environment consisting of tools added onto Visual C++ 6.0. eMbedded Visual C++ was replaced as a separate development environment by [[Microsoft Visual Studio|Microsoft Visual Studio 2005]]. === 32-bit and 64-bit versions === * {{anchor|vc8}}Visual C++ 2005 (also known as Visual C++ 8.0), which included MFC 8.0, was released in November 2005. This version supports .NET 2.0 and includes a new version of C++ targeted to the .NET framework ([[C++/CLI]]) with the purpose of replacing the previous version ([[Managed C++]]). Managed C++ for CLI is still available via compiler options, though. It also introduced [[OpenMP]]. With Visual C++ 2005, Microsoft also introduced [[Team Foundation Server]]. Visual C++ 8.0 has problems compiling MFC AppWizard projects that were created using Visual Studio 6.0, so maintenance of legacy projects can be continued with the original IDE if rewriting is not feasible. Visual C++ 2005 is the last version able to target [[Windows 98]] and [[Windows Me]].<ref>[http://msdn.microsoft.com/en-us/library/6sehtctf(v=VS.90).aspx How to: Modify WINVER and _WIN32_WINNT]</ref><ref>[http://msdn.microsoft.com/en-us/library/bb531344(v=VS.90).aspx Breaking Changes]</ref> SP1 version (14.00.50727.762) is also available in [[Microsoft Windows SDK|Microsoft Windows SDK Update for Windows Vista]]. * {{anchor|vc9}}Visual C++ 2008 (also known as Visual C++ 9.0) was released in November 2007. This version supports .NET 3.5. Managed C++ for CLI is still available via compiler options. By default, all applications compiled against the Visual C++ 2008 Runtimes (static and dynamic linking) will only work on Windows 2000, Windows XP SP2 and later.<ref>[http://msdn.microsoft.com/en-us/library/ws0swas0(VS.100).aspx Windows Platforms (CRT)]</ref><ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/bb531344.aspx?ppud=4|title=Visual C++ 2008 Breaking Changes|date=25 May 2023 }}</ref> A feature pack released for VC9, later included in SP1, added support for C++ [[C++ Technical Report 1|TR1]] library extensions. SP1 version (15.00.30729.01) is also available in [[Microsoft Windows SDK|Microsoft Windows SDK for Windows 7]]. * Some versions of Visual C++ supported [[Itanium 2]]. * {{anchor|vc10}}Visual C++ 2010 (also known as Visual C++ 10.0) was released on April 12, 2010. It uses a [[SQL Server Compact]] database to store information about the source code, including [[IntelliSense]] information, for better IntelliSense and code-completion support.<ref name="cpp10">{{cite web | title = IntelliSense, part 2: The Future | url = http://blogs.msdn.com/vcblog/archive/2008/02/29/intellisense-part-2-the-future.aspx | author = Visual C++ Team Blog | access-date =March 12, 2008}}</ref> However, Visual C++ 2010 does not support Intellisense for C++/CLI.<ref>{{cite web | url = http://blogs.msdn.com/b/vcblog/archive/2011/03/03/10136696.aspx | title = Why IntelliSense is not supported for C++/CLI in Visual Studio 2010 | access-date =March 13, 2011}}</ref> This version adds a C++ [[parallel computing]] library called the [[Parallel Patterns Library]], partial support for [[C++11]], significantly improved IntelliSense based on the [[Edison Design Group]] front end,<ref>{{cite web | title = Rebuilding Intellisense | url = http://blogs.msdn.com/b/vcblog/archive/2009/05/27/rebuilding-intellisense.aspx | author = Visual C++ Team Blog | date = 27 May 2009 }}</ref> and performance improvements to both the compiler and generated code.<ref>{{cite web | title = Visual C++ Code Generation in Visual Studio 2010 | url = http://blogs.msdn.com/vcblog/archive/2009/11/02/visual-c-code-generation-in-visual-studio-2010.aspx | author = Visual C++ Team Blog}}</ref> This version is built on .NET 4.0, but supports compiling to [[machine code]]. The partial C++11 support mainly consists of six compiler features:<ref>{{cite web | url = http://blogs.msdn.com/vcblog/archive/2010/04/06/c-0x-core-language-features-in-vc10-the-table.aspx | title = C++0x Core Language Features In VC10: The Table}}</ref> lambdas, rvalue references, auto, decltype, static_assert, and nullptr. C++11 also supports library features (e.g., moving the TR1 components from std::tr1 namespace directly to std namespace). [[Variadic template]]s were also considered, but delayed until some future version due to having a lower priority, which stemmed from the fact that, unlike other costly-to-implement features (lambda, rvalue references), variadic templates would benefit only a minority of library writers rather than the majority of compiler end users.<ref>{{cite web | title = Stephan T. Lavavej: Everything you ever wanted to know about nullptr | url = http://channel9.msdn.com/shows/Going+Deep/Stephan-T-Lavavej-Everything-you-ever-wanted-to-know-about-nullptr/}}</ref> By default, all applications compiled against Visual C++ 2010 Runtimes only work on Windows XP SP2 and later. The RTM version (16.00.30319) is also available in [[Microsoft Windows SDK|Windows SDK for Windows 7 and .NET Framework 4]] (WinSDK v7.1).<ref>{{cite web | title = Released: Windows SDK for Windows 7 and .NET Framework 4 | url = http://blogs.msdn.com/b/windowssdk/archive/2010/05/25/released-windows-sdk-for-windows-7-and-net-framework-4.aspx | author = Microsoft Windows SDK Blog}}</ref> SP1 version (16.00.40219) is available as part of Visual Studio 2010 Service Pack 1 or through the Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1.<ref>[http://support.microsoft.com/kb/2519277/en-us FIX: Visual C++ compilers are removed when you upgrade Visual Studio 2010 Professional or Visual Studio 2010 Express to Visual Studio 2010 SP1 if Windows SDK v7.1 is installed]</ref> * {{anchor|vc11}}Visual C++ 2012 (also known as Visual C++ 11.0) was released on August 15, 2012. It features improved C++11 support, and support for [[Windows Runtime]] development.<ref>{{cite web |url=https://msdn.microsoft.com/en-us/library/vstudio/hh409293(v=vs.110).aspx |title=What's New for Visual C++ in Visual Studio 2012 |author=<!--Staff writer(s); no by-line.--> |publisher=Microsoft |work=[[Microsoft Developer Network]] |date=29 November 2012 |access-date=September 20, 2015}}</ref> * {{anchor|vc12}}Visual C++ 2013 (also known as Visual C++ 12.0) was released on October 17, 2013. It features further C++11 and [[C99]] support, and introduces a [[Representational state transfer|REST]] SDK.<ref>{{cite web |url=https://msdn.microsoft.com/en-us/library/vstudio/hh409293(v=vs.120).aspx |title=What's New for Visual C++ in Visual Studio 2013 |author=<!--Staff writer(s); no by-line.--> |publisher=Microsoft |work=[[Microsoft Developer Network]] |date=28 April 2015 |access-date=September 20, 2015}}</ref> * {{anchor|vc14}}Visual C++ 2015 (also known as Visual C++ 14.0) was released on July 20, 2015.<ref>{{cite web|url=http://blogs.msdn.com/b/vcblog/archive/2015/07/20/visual-studio-2015-rtm-now-available.aspx|title=Visual Studio 2015 RTM Now Available|author=Eric Battalio|date=July 20, 2015|publisher=Microsoft|work=Visual C++ Team Blog}}</ref> It features improved C++11/14/17 support.<ref>{{cite web|url=http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx|title=C++11/14/17 Features In VS 2015 RTM|author=Stephan T. Lavavej|date=June 19, 2015|publisher=Microsoft|work=Visual C++ Team Blog}}</ref> Without any announcement from Microsoft, Visual Studio 2015 Update 2 started generating telemetry calls in compiled binaries. After some users contacted Microsoft about this problem, Microsoft said they would remove these telemetry calls when compiling with the future Visual Studio 2015 Update 3.<ref>[https://www.infoq.com/news/2016/06/visual-cpp-telemetry Reviewing Microsoft's Automatic Insertion of Telemetry into C++ Binaries]</ref><ref>{{Cite web|url=https://www.reddit.com/r/cpp/comments/4ibauu/visual_studio_adding_telemetry_function_calls_to/d30dmvu|title=Visual Studio adding telemetry function calls to binary? • /r/cpp|website=reddit|date=7 May 2016|access-date=2016-08-17}}</ref> The function in question was removed from the Visual C++ CRT static libraries in Visual Studio 2015 Update 3.{{Citation needed|date=August 2016}} * {{anchor|vc14}}Visual C++ 2017 (also known as Visual C++ 14.1) was released on March 7, 2017.<ref>{{cite web|url=https://devblogs.microsoft.com/visualstudio/announcing-visual-studio-2017-general-availability-and-more/|title=Announcing Visual Studio 2017 General Availability… and more|author=Julia Liuson|date=March 7, 2017|publisher=Microsoft|work=Visual Studio Team Blog}}</ref> * {{anchor|vc16}}Visual C++ 2019 (also known as Visual C++ 14.20) was released on April 2, 2019.<ref>{{cite web|url=https://devblogs.microsoft.com/visualstudio/join-us-april-2nd-for-the-launch-of-visual-studio-2019/|title=Join us April 2nd for the Launch of Visual Studio 2019!|author=Amanda Silver|date=February 14, 2019|publisher=Microsoft|work=Visual Studio Team Blog}}</ref> * {{anchor|vc17}}Visual C++ 2022 (also known as Visual C++ 14.30) was released on November 8, 2021.<ref>{{cite web|url=https://devblogs.microsoft.com/visualstudio/visual-studio-2022-now-available/|title=Visual Studio 2022 now available|author=Amanda Silver|date=November 8, 2021|publisher=Microsoft|work=Visual Studio Team Blog}}</ref> === Internal version numbering === There are several different version numbers to consider when working with Visual C or C++. The oldest and most original of these is the compiler version number, which has been monotonically increased since the early Microsoft C compiler days. This is the version returned by running the command <code>cl.exe</code> on its own without any options. By taking two digits after the decimal and dropping the decimal point, this also becomes the value of the C pre-processor macro: <code>_MSC_VER</code>, and the CMake variable: <code>MSVC_VERSION</code>. A longer version of the C macro is <code>_MSC_FULL_VER</code> to make more finely-grained distinctions between builds of the compiler. An example of <code>_MSC_VER</code> is 1933 to represent version 19.33 of the Microsoft C/C++ compiler, and of <code>_MSC_FULL_VER</code> is 193331630. The Visual product version, such as "17.3.4", designates the version of Visual Studio with which version 19.33 of the compiler was packaged. Then there is the Microsoft Visual C/C++ Runtime Library version, e.g. "14.3". From this, one can also deduce the toolset version, which can be obtained by taking the first three digits of the runtime library version and dropping the decimal, e.g. "143". It includes the Visual C/C++ runtime library, as well as compilers, linkers, assemblers, other build tools, and matching libraries and header files. The following is a (scrapeable) table of the known correlated version numbers. {| class="wikitable" |+ Visual Studio Versions<ref>{{Cite web|title = Pre-defined Compiler Macros / Wiki / Compilers|url = https://dev.to/yumetodo/list-of-mscver-and-mscfullver-8nd|website = dev.to| date=22 May 2018 |access-date = 2023-02-20}}</ref><ref>{{Cite web|title = Predefined Macros / Microsoft Learn|url=https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170#:~:text=is%20always%20defined.-,_MSC_VER,-Defined%20as%20an|website = learn.microsoft.com| date=8 August 2022 |access-date = 2023-05-26}}</ref> ! product name !! VC ( Version Code ) !! marketing year !! _MSC_VER !! _MSC_FULL_VER !! runtime library version |- | Microsoft C 6.0 || || || 600 || || |- | Microsoft C/C++ 7.0 || || || 700 || || |- | Visual C++ 1.0 || 1.0 || || 800 || || 1 |- | Visual C++ 2.0 || 2.0 || || 900 || || 2 |- | Visual C++ 4.0 || 4.0 || || 1000 || || 4 |- | Visual C++ 4.1 || 4.1 || || 1010 || || 4.1 |- | Visual C++ 4.2 || 4.2 || || 1020 || || 4.2 |- | Visual Studio 97 [5.0] || 5.0 || 97 || 1100 || || 5 |- | Visual Studio 6.0 SP5 || 6.0 || || 1200 || 12008804 || 6 |- | Visual Studio 6.0 SP6 || 6.0 || || 1200 || 12008804 || 6 |- | Visual Studio .NET 2002 [7.0] || 7.0 || 2002 || 1300 || 13009466 || 7 |- | Visual Studio .NET 2003 Beta [7.1] || 7.1 || 2003 || 1310 || 13102292 || 7.1 |- | Visual Studio Toolkit 2003 [7.1] || 7.1 || 2003 || 1310 || 13103052 || 7.1 |- | Visual Studio .NET 2003 [7.1] || 7.1 || 2003 || 1310 || 13103077 || 7.1 |- | Visual Studio .NET 2003 SP1 [7.1] || 7.1 || 2003 || 1310 || 13106030 || 7.1 |- | Visual Studio 2005 Beta 1 [8.0] || 8.0 || 2005 || 1400 || 140040607 || 8 |- | Visual Studio 2005 Beta 2 [8.0] || 8.0 || 2005 || 1400 || 140050215 || 8 |- | Visual Studio 2005 [8.0] || 8.0 || 2005 || 1400 || 140050320 || 8 |- | Visual Studio 2005 SP1 [8.0] || 8.0 || 2005 || 1400 || 140050727 || 8 |- | Visual Studio 2008 Beta 2 [9.0] || 8.0 || 2008 || 1500 || 150020706 || 9 |- | Visual Studio 2008 [9.0] || 9.0 || 2010 || 1500 || 150021022 || 9 |- | Visual Studio 2008 SP1 [9.0] || 9.0 || 2010 || 1500 || 150030729 || 9 |- | Visual Studio 2010 Beta 1 [10.0] || 10.0 || 2010 || 1600 || 160020506 || 10 |- | Visual Studio 2010 Beta 2 [10.0] || 10.0 || 2010 || 1600 || 160021003 || 10 |- | Visual Studio 2010 [10.0] || 10.0 || 2010 || 1600 || 160030319 || 10 |- | Visual Studio 2010 SP1 [10.0] || 10.0 || 2010 || 1600 || 160040219 || 10 |- | Visual Studio 2012 [11.0] || 11.0 || 2012 || 1700 || 170050727 || 11 |- | Visual Studio 2012 Update 1 [11.0] || 11.0 || 2012 || 1700 || 170051106 || 11 |- | Visual Studio 2012 Update 2 [11.0] || 11.0 || 2012 || 1700 || 170060315 || 11 |- | Visual Studio 2012 Update 3 [11.0] || 11.0 || 2012 || 1700 || 170060610 || 11 |- | Visual Studio 2012 Update 4 [11.0] || 11.0 || 2012 || 1700 || 170061030 || 11 |- | Visual Studio 2012 November CTP [11.0] || 11.0 || 2012 || 1700 || 170051025 || 11 |- | Visual Studio 2013 Preview [12.0] || 12.0 || 2013 || 1800 || 180020617 || 12 |- | Visual Studio 2013 RC [12.0] || 12.0 || 2013 || 1800 || 180020827 || 12 |- | Visual Studio 2013 [12.0] || 12.0 || 2013 || 1800 || 180021005 || 12 |- | Visual Studio 2013 Update 1 [12.0] || 12.0 || 2013 || 1800 || 180021005 || 12 |- | Visual Studio 2013 Update2 RC [12.0] || 12.0 || 2013 || 1800 || 180030324 || 12 |- | Visual Studio 2013 Update 2 [12.0] || 12.0 || 2013 || 1800 || 180030501 || 12 |- | Visual Studio 2013 Update 3 [12.0] || 12.0 || 2013 || 1800 || 180030723 || 12 |- | Visual Studio 2013 Update 4 [12.0] || 12.0 || 2013 || 1800 || 180031101 || 12 |- | Visual Studio 2013 Update 5 [12.0] || 12.0 || 2013 || 1800 || 180040629 || 12 |- | Visual Studio 2013 November CTP [12.0] || 12.0 || 2013 || 1800 || 180021114 || 12 |- | Visual Studio 2015 [14.0] || 14.0 || 2015 || 1900 || 190023026 || 14 |- | Visual Studio 2015 Update 1 [14.0] || 14.0 || 2015 || 1900 || 190023506 || 14 |- | Visual Studio 2015 Update 2 [14.0] || 14.0 || 2015 || 1900 || 190023918 || 14 |- | Visual Studio 2015 Update 3 [14.0] || 14.0 || 2015 || 1900 || 190024210 || 14 |- | Visual Studio 2017 version 15.0 || 15.0 || 2017 || 1910 || 191025017 || 14.1 |- | Visual Studio 2017 version 15.1 || 15.1 || 2017 || 1910 || 191025017 || 14.1 |- | Visual Studio 2017 version 15.2 || 15.2 || 2017 || 1910 || 191025017 || 14.1 |- | Visual Studio 2017 version 15.3.3 || 15.3.3 || 2017 || 1911 || 191125507 || 14.11 |- | Visual Studio 2017 version 15.4.4 || 15.4.4 || 2017 || 1911 || 191125542 || 14.11 |- | Visual Studio 2017 version 15.4.5 || 15.4.5 || 2017 || 1911 || 191125547 || 14.11 |- | Visual Studio 2017 version 15.5.2 || 15.5.2 || 2017 || 1912 || 191225831 || 14.12 |- | Visual Studio 2017 version 15.5.3 || 15.5.3 || 2017 || 1912 || 191225834 || 14.12 |- | Visual Studio 2017 version 15.5.4 || 15.5.4 || 2017 || 1912 || 191225834 || 14.12 |- | Visual Studio 2017 version 15.5.6 || 15.5.6 || 2017 || 1912 || 191225835 || 14.12 |- | Visual Studio 2017 version 15.5.7 || 15.5.7 || 2017 || 1912 || 191225835 || 14.12 |- | Visual Studio 2017 version 15.6.0 || 15.6.0 || 2017 || 1913 || 191326128 || 14.13 |- | Visual Studio 2017 version 15.6.1 || 15.6.1 || 2017 || 1913 || 191326128 || 14.13 |- | Visual Studio 2017 version 15.6.2 || 15.6.2 || 2017 || 1913 || 191326128 || 14.13 |- | Visual Studio 2017 version 15.6.3 || 15.6.3 || 2017 || 1913 || 191326129 || 14.13 |- | Visual Studio 2017 version 15.6.4 || 15.6.4 || 2017 || 1913 || 191326129 || 14.13 |- | Visual Studio 2017 version 15.6.6 || 15.6.6 || 2017 || 1913 || 191326131 || 14.13 |- | Visual Studio 2017 version 15.6.7 || 15.6.7 || 2017 || 1913 || 191326132 || 14.13 |- | Visual Studio 2017 version 15.7.1 || 15.7.1 || 2017 || 1914 || 191426428 || 14.14 |- | Visual Studio 2017 version 15.7.2 || 15.7.2 || 2017 || 1914 || 191426429 || 14.14 |- | Visual Studio 2017 version 15.7.3 || 15.7.3 || 2017 || 1914 || 191426430 || 14.14 |- | Visual Studio 2017 version 15.7.5 || 15.7.5 || 2017 || 1914 || 191426433 || 14.14 |- | Visual Studio 2017 version 15.9.1 || 15.9.1 || 2017 || 1916 || 191627023 || 14.16 |- | Visual Studio 2017 version 15.9.4 || 15.9.4 || 2017 || 1916 || 191627025 || 14.16 |- | Visual Studio 2017 version 15.9.5 || 15.9.5 || 2017 || 1916 || 191627026 || 14.16 |- | Visual Studio 2017 version 15.9.7 || 15.9.7 || 2017 || 1916 || 191627027 || 14.16 |- | Visual Studio 2017 version 15.9.11 || 15.9.11 || 2017 || 1916 || 191627030 || 14.16 |- | Visual Studio 2019 version 16.0.0 || 16.0.0 || 2019 || 1920 || 192027508 || 14.20 |- | Visual Studio 2019 version 16.1.2 || 16.1.2 || 2019 || 1921 || 192127702 || 14.21 |- | Visual Studio 2019 version 16.2.3 || 16.2.3 || 2019 || 1922 || 192227905 || 14.21 |- | Visual Studio 2019 version 16.3.2 || 16.3.2 || 2019 || 1923 || 192328105 || 14.21 |- | Visual Studio 2019 version 16.4.0 || 16.4.0 || 2019 || 1924 || 192428314 || 14.24 |- | Visual Studio 2019 version 16.5.1 || 16.5.1 || 2019 || 1925 || 192528611 || 14.25 |- | Visual Studio 2019 version 16.6.2 || 16.6.2 || 2019 || 1926 || 192628806 || 14.26 |- | Visual Studio 2019 version 16.7 || 16.7 || 2019 || 1927 || 192729112 || 14.27 |- | Visual Studio 2019 version 16.8.1 || 16.8.1 || 2019 || 1928 || 192829333 || 14.28 |- | Visual Studio 2019 version 16.8.2 || 16.8.2 || 2019 || 1928 || 192829334 || 14.28 |- | Visual Studio 2019 version 16.9.0 || 16.9.0 || 2019 || 1928 || 192829910 || 14.28 |- | Visual Studio 2019 version 16.9.2 || 16.9.2 || 2019 || 1928 || 192829913 || 14.28 |- | Visual Studio 2019 version 16.9.17 || 16.9.17 || 2019 || 1928 || 192829921 || 14.28 |- | Visual Studio 2019 version 16.9.18 || 16.9.18 || 2019 || 1928 || 192829921 || 14.28 |- | Visual Studio 2019 version 16.9.19 || 16.9.19 || 2019 || 1928 || 192829923 || 14.28 |- | Visual Studio 2019 version 16.11.2 || 16.11.2 || 2019 || 1929 || 192930133 || 14.29 |- | Visual Studio 2019 version 16.11.8 || 16.11.8 || 2019 || 1929 || 192930138 || 14.29 |- | Visual Studio 2019 version 16.11.9 || 16.11.9 || 2019 || 1929 || 192930139 || 14.29 |- | Visual Studio 2019 version 16.11.10 || 16.11.10 || 2019 || 1929 || 192930140 || 14.29 |- | Visual Studio 2019 version 16.11.11 || 16.11.11 || 2019 || 1929 || 192930141 || 14.29 |- | Visual Studio 2019 version 16.11.12 || 16.11.12 || 2019 || 1929 || 192930142 || 14.29 |- | Visual Studio 2019 version 16.11.16 || 16.11.16 || 2019 || 1929 || 192930145 || 14.29 |- | Visual Studio 2019 version 16.11.17 || 16.11.17 || 2019 || 1929 || 192930146 || 14.29 |- | Visual Studio 2019 version 16.11.21 || 16.11.21 || 2019 || 1929 || 192930147 || 14.29 |- | Visual Studio 2019 version 16.11.24 || 16.11.24 || 2019 || 1929 || 192930148 || 14.29 |- | Visual Studio 2019 version 16.11.27 || 16.11.27 || 2019 || 1929 || 192930151 || 14.29 |- | Visual Studio 2019 version 16.11.35 || 16.11.35 || 2019 || 1929 || 192930154 || 14.29 |- | Visual Studio 2022 version 17.0.1 || 17.0.1 || 2022 || 1930 || 193030705 || 14.30 |- | Visual Studio 2022 version 17.0.2 || 17.0.2 || 2022 || 1930 || 193030706 || 14.31 |- | Visual Studio 2022 version 17.1.3 || 17.1.3 || 2022 || 1931 || 193131105 || 14.31 |- | Visual Studio 2022 version 17.2.2 || 17.2.2 || 2022 || 1932 || 193231329 || 14.32 |- | Visual Studio 2022 version 17.3.4 || 17.3.4 || 2022 || 1933 || 193331630 || 14.33 |- | Visual Studio 2022 version 17.4.0 || 17.4.0 || 2022 || 1934 || 193431933 || 14.34 |- | Visual Studio 2022 version 17.5.0 || 17.5.0 || 2022 || 1935 ||193532215 || 14.35 |- | Visual Studio 2022 version 17.6.0 || 17.6.0 || 2022 || 1936 ||193632532 || 14.36 |- | Visual Studio 2022 version 17.6.2 || 17.6.2 || 2022 || 1936 || 193632532 || 14.36.32532 |- | Visual Studio 2022 version 17.6.4 || 17.6.4 || 2022 || 1936 || 193632535 || 14.36.32532 |- | Visual Studio 2022 version 17.7.0 || 17.7.0 || 2022 || 1937 || 193732822 || 14.36.32543 |- | Visual Studio 2022 version 17.8.0 || 17.8.0 || 2022 || 1938 || 193833130 || 14.38.33135 |- | Visual Studio 2022 version 17.9.1 || 17.9.1 || 2022 || 1939 || 193933520 || 14.39.33520 |- | Visual Studio 2022 version 17.9.6 || 17.9.6 || 2022 || 1939 || 193933523 || 14.39.33523 |- | Visual Studio 2022 version 17.10.1 || 17.10.1 || 2022 || 1940 || 194033811 || 14.40.33811 |- | Visual Studio 2022 version 17.10.10 || 17.10.10 || 2022 || 1940 || 194033818 || 14.40.33818 |- | Visual Studio 2022 version 17.11.0 || 17.11.0 || 2022 || 1941 || 194134120 || 14.41.34120 |- | Visual Studio 2022 version 17.12.4 || 17.12.4 || 2022 || 1942 || 194234436 || 14.42.34436 |- | Visual Studio 2022 version 17.13.6 || 17.13.6 || 2022 || 1943 || 194334810 || 19.43.34810 |}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)