Microsoft Visual C++

Last updated
Visual C++
Developer(s) Microsoft
Initial releaseFebruary 1993;31 years ago (1993-02) [1]
Stable release
14.40.33617
Written in C++ [2]
Operating system Windows
Platform IA-32, x86-64 and ARM
Available inEnglish, Chinese (Simplified & Traditional), Czech, French, German, Italian, Japanese, Korean, Polish, Portuguese (Brazilian), Russian, Spanish, Turkish
Type Compiler
License Trialware and freeware
Website docs.microsoft.com/en-us/cpp/

Microsoft Visual C++ (MSVC) is a compiler for the C, C++, C++/CLI and C++/CX programming languages by Microsoft. MSVC is proprietary software; it was originally a standalone product but later became a part of Visual Studio and made available in both trialware and freeware forms. It features tools for developing and debugging C++ code, especially code written for the Windows API, DirectX and .NET.

Contents

Many applications require redistributable Visual C++ runtime library packages to function correctly. These packages are frequently installed separately from the applications they support, enabling multiple applications to use the package with only a single installation. These Visual C++ redistributable and runtime packages are mostly installed for standard libraries that many applications use. [3]

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 ]

16-bit versions

Strictly 32-bit versions

32-bit and 64-bit versions

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 cl.exe 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: _MSC_VER, and the CMake variable: MSVC_VERSION. A longer version of the C macro is _MSC_FULL_VER to make more finely-grained distinctions between builds of the compiler. An example of _MSC_VER is "1933" to represent version 19.33 of the Microsoft C/C++ compiler, and of _MSC_FULL_VER is "193331630". You should use the >= operator to test the value of _MSC_VER or _MSC_FULL_VER instead of equality.

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 deduce also 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.

Visual Studio Versions [52] [53]
product nameVC ( Version Code )marketing year_MSC_VER_MSC_FULL_VERruntime library version
Microsoft C 6.0600
Microsoft C/C++ 7.0700
Visual C++ 1.01.08001
Visual C++ 2.02.09002
Visual C++ 4.04.010004
Visual C++ 4.14.110104.1
Visual C++ 4.24.210204.2
Visual Studio 97 [5.0]5.09711005
Visual Studio 6.0 SP56.01200120088046
Visual Studio 6.0 SP66.01200120088046
Visual Studio .NET 2002 [7.0]7.020021300130094667
Visual Studio .NET 2003 Beta [7.1]7.120031310131022927.1
Visual Studio Toolkit 2003 [7.1]7.120031310131030527.1
Visual Studio .NET 2003 [7.1]7.120031310131030777.1
Visual Studio .NET 2003 SP1 [7.1]7.120031310131060307.1
Visual Studio 2005 Beta 1 [8.0]8.0200514001400406078
Visual Studio 2005 Beta 2 [8.0]8.0200514001400502158
Visual Studio 2005 [8.0]8.0200514001400503208
Visual Studio 2005 SP1 [8.0]8.0200514001400507278
Visual Studio 2008 Beta 2 [9.0]8.0200815001500207069
Visual Studio 2008 [9.0]9.0201015001500210229
Visual Studio 2008 SP1 [9.0]9.0201015001500307299
Visual Studio 2010 Beta 1 [10.0]10.02010160016002050610
Visual Studio 2010 Beta 2 [10.0]10.02010160016002100310
Visual Studio 2010 [10.0]10.02010160016003031910
Visual Studio 2010 SP1 [10.0]10.02010160016004021910
Visual Studio 2012 [11.0]11.02012170017005072711
Visual Studio 2012 Update 1 [11.0]11.02012170017005110611
Visual Studio 2012 Update 2 [11.0]11.02012170017006031511
Visual Studio 2012 Update 3 [11.0]11.02012170017006061011
Visual Studio 2012 Update 4 [11.0]11.02012170017006103011
Visual Studio 2012 November CTP [11.0]11.02012170017005102511
Visual Studio 2013 Preview [12.0]12.02013180018002061712
Visual Studio 2013 RC [12.0]12.02013180018002082712
Visual Studio 2013 [12.0]12.02013180018002100512
Visual Studio 2013 Update 1 [12.0]12.02013180018002100512
Visual Studio 2013 Update2 RC [12.0]12.02013180018003032412
Visual Studio 2013 Update 2 [12.0]12.02013180018003050112
Visual Studio 2013 Update 3 [12.0]12.02013180018003072312
Visual Studio 2013 Update 4 [12.0]12.02013180018003110112
Visual Studio 2013 Update 5 [12.0]12.02013180018004062912
Visual Studio 2013 November CTP [12.0]12.02013180018002111412
Visual Studio 2015 [14.0]14.02015190019002302614
Visual Studio 2015 Update 1 [14.0]14.02015190019002350614
Visual Studio 2015 Update 2 [14.0]14.02015190019002391814
Visual Studio 2015 Update 3 [14.0]14.02015190019002421014
Visual Studio 2017 version 15.015.02017191019102501714.1
Visual Studio 2017 version 15.115.12017191019102501714.1
Visual Studio 2017 version 15.215.22017191019102501714.1
Visual Studio 2017 version 15.3.315.3.32017191119112550714.11
Visual Studio 2017 version 15.4.415.4.42017191119112554214.11
Visual Studio 2017 version 15.4.515.4.52017191119112554714.11
Visual Studio 2017 version 15.5.215.5.22017191219122583114.12
Visual Studio 2017 version 15.5.315.5.32017191219122583414.12
Visual Studio 2017 version 15.5.415.5.42017191219122583414.12
Visual Studio 2017 version 15.5.615.5.62017191219122583514.12
Visual Studio 2017 version 15.5.715.5.72017191219122583514.12
Visual Studio 2017 version 15.6.015.6.02017191319132612814.13
Visual Studio 2017 version 15.6.115.6.12017191319132612814.13
Visual Studio 2017 version 15.6.215.6.22017191319132612814.13
Visual Studio 2017 version 15.6.315.6.32017191319132612914.13
Visual Studio 2017 version 15.6.415.6.42017191319132612914.13
Visual Studio 2017 version 15.6.615.6.62017191319132613114.13
Visual Studio 2017 version 15.6.715.6.72017191319132613214.13
Visual Studio 2017 version 15.7.115.7.12017191419142642814.14
Visual Studio 2017 version 15.7.215.7.22017191419142642914.14
Visual Studio 2017 version 15.7.315.7.32017191419142643014.14
Visual Studio 2017 version 15.7.515.7.52017191419142643314.14
Visual Studio 2017 version 15.9.115.9.12017191619162702314.16
Visual Studio 2017 version 15.9.415.9.42017191619162702514.16
Visual Studio 2017 version 15.9.515.9.52017191619162702614.16
Visual Studio 2017 version 15.9.715.9.72017191619162702714.16
Visual Studio 2017 version 15.9.1115.9.112017191619162703014.16
Visual Studio 2019 version 16.0.016.0.02019192019202750814.20
Visual Studio 2019 version 16.1.216.1.22019192119212770214.21
Visual Studio 2019 version 16.2.316.2.32019192219222790514.21
Visual Studio 2019 version 16.3.216.3.22019192319232810514.21
Visual Studio 2019 version 16.4.016.4.02019192419242831414.24
Visual Studio 2019 version 16.5.116.5.12019192519252861114.25
Visual Studio 2019 version 16.6.216.6.22019192619262880614.26
Visual Studio 2019 version 16.716.72019192719272911214.27
Visual Studio 2019 version 16.8.116.8.12019192819282933314.28
Visual Studio 2019 version 16.8.216.8.22019192819282933414.28
Visual Studio 2019 version 16.9.016.9.02019192819282991014.28
Visual Studio 2019 version 16.9.216.9.22019192819282991314.28
Visual Studio 2019 version 16.9.1716.9.172019192819282992114.28
Visual Studio 2019 version 16.9.1816.9.182019192819282992114.28
Visual Studio 2019 version 16.9.1916.9.192019192819282992314.28
Visual Studio 2019 version 16.11.216.11.22019192919293013314.29
Visual Studio 2019 version 16.11.816.11.82019192919293013814.29
Visual Studio 2019 version 16.11.916.11.92019192919293013914.29
Visual Studio 2019 version 16.11.1016.11.102019192919293014014.29
Visual Studio 2019 version 16.11.1116.11.112019192919293014114.29
Visual Studio 2019 version 16.11.1216.11.122019192919293014214.29
Visual Studio 2019 version 16.11.1616.11.162019192919293014514.29
Visual Studio 2019 version 16.11.2416.11.242019192919293014814.29
Visual Studio 2019 version 16.11.2716.11.272019192919293015114.29
Visual Studio 2019 version 16.11.3516.11.352019192919293015414.29
Visual Studio 2022 version 17.0.117.0.12022193019303070514.30
Visual Studio 2022 version 17.0.217.0.22022193019303070614.31
Visual Studio 2022 version 17.1.317.1.32022193119313110514.31
Visual Studio 2022 version 17.2.217.2.22022193219323132914.32
Visual Studio 2022 version 17.3.417.3.42022193319333163014.33
Visual Studio 2022 version 17.4.017.4.02022193419343193314.34
Visual Studio 2022 version 17.5.017.5.02022193519353221514.35
Visual Studio 2022 version 17.6.017.6.02022193619363253214.36
Visual Studio 2022 version 17.6.217.6.22022193619363253214.36.32532
Visual Studio 2022 version 17.6.417.6.42022193619363253514.36.32532
Visual Studio 2022 version 17.7.017.7.02022193719373282214.36.32543
Visual Studio 2022 version 17.8.017.8.02022193819383313014.38.33135
Visual Studio 2022 version 17.9.117.9.12022193919393352014.39.33520
Visual Studio 2022 version 17.9.617.9.62022193919393352314.39.33523

Compatibility

ABI

The Visual C++ compiler ABI have historically changed between major compiler releases. [54] This is especially the case for STL containers, where container sizes have varied a lot between compiler releases. [55] Microsoft therefore recommends against using C++ interfaces at module boundaries when one wants to enable client code compiled using a different compiler version. Instead of C++, Microsoft recommends using C [56] or COM [57] interfaces, which are designed to have a stable ABI between compiler releases.

All 14.x MSVC releases have a stable ABI, [58] and binaries built with these versions can be mixed in a forwards-compatible manner, noting the following restrictions:

C runtime libraries

Visual C++ ships with different versions of C runtime libraries. [59] This means users can compile their code with any of the available libraries. However, this can cause some problems when using different components (DLLs, EXEs) in the same program. A typical example is a program using different libraries. The user should use the same C Run-Time for all the program's components unless the implications are understood. Microsoft recommends using the multithreaded, dynamic link library (/MD or /MDd compiler option) to avoid possible problems. [59]

POSIX

Although Microsoft's CRT implements a large subset of POSIX interfaces, the Visual C++ compiler will emit a warning on every use of such functions by default. The rationale is that C and C++ standards require an underscore prefix before implementation-defined interfaces, so the use of these functions are non-standard. [60] However, systems that are actually POSIX-compliant would not accept these underscored names, and it is more portable to just turn off the warning instead.

C

Although the product originated as an IDE for the C programming language, for many years the compiler's support for that language conformed only to the original edition of the C standard, dating from 1989, but not the C99 revision of the standard. There had been no plans to support C99 even in 2011, more than a decade after its publication. [61]

Visual C++ 2013 finally added support for various C99 features in its C mode (including designated initializers, compound literals, and the _Bool type), [62] though it was still not complete. [63] Visual C++ 2015 further improved the C99 support, with full support of the C99 Standard Library, except for features that require C99 language features not yet supported by the compiler. [64]

Most of the changes from the C11 revision of the standard were still not supported by Visual C++ 2017. [65] For example, generic selections via the _Generic keyword are not supported by the compiler and result in a syntax error. [66]

The preprocessor was overhauled in 2018, with C11 in sight: [67]

Full C11 conformance is on our roadmap, and updating the preprocessor is just the first step in that process. The C11 _Generic feature is not actually part of the preprocessor, so it has not yet been implemented. When implemented I expect the feature to work independently of if the traditional or updated preprocessor logic is used.

_Generic support has been committed to MSVC as of February 2020. [68]

In September 2020, Microsoft announced C11 and C17 standards support in MSVC would arrive in version 16.8. [69] This did not include optional features but Microsoft indicated that they were planning to add support for atomics and threads at a later date. In version 17.5, partial (since atomic locks are missing) and experimental (meaning hidden behind the compiler flag /experimental:c11atomics) support for atomics was added [70] and in version 17.8, support for threads was added, this time not behind a compiler flag. [71] [72]

C++

With default settings MSVC does not do two-phase name lookup which prevents it from flagging a wide range of invalid code. Most checks are deferred to template instantiation. More recent versions remedy this behavior, but it needs to be enabled by the command-line option /permissive-. [73]

Related Research Articles

<span class="mw-page-title-main">Visual Basic (.NET)</span> Object-oriented computer programming language

Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language, implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the successor to its original Visual Basic language, the last version of which was Visual Basic 6.0. Although the ".NET" portion of the name was dropped in 2005, this article uses "Visual Basic [.NET]" to refer to all Visual Basic languages released since 2002, in order to distinguish between them and the classic Visual Basic. Along with C# and F#, it is one of the three main languages targeting the .NET ecosystem. Microsoft updated its VB language strategy on 6 February 2023, stating that VB is a stable language now and Microsoft will keep maintaining it.

C++Builder is a rapid application development (RAD) environment for developing software in the C++ programming language. Originally developed by Borland, as of 2009 it is owned by Embarcadero Technologies, a subsidiary of Idera. C++Builder can compile apps for Windows, iOS, macOS, and Android. It includes tools that allow drag-and-drop visual development, making programming easier by incorporating a WYSIWYG graphical user interface builder.

<span class="mw-page-title-main">Microsoft Foundation Class Library</span> Windows OS object-oriented library

Microsoft Foundation Class Library (MFC) is a C++ object-oriented library for developing desktop applications for Windows.

<span class="mw-page-title-main">C99</span> C programming language standard, 1999 revision

C99 is an informal name for ISO/IEC 9899:1999, a past version of the C programming language standard. It extends the previous version (C90) with new features for the language and the standard library, and helps implementations make better use of available computer hardware, such as IEEE 754-1985 floating-point arithmetic, and compiler technology. The C11 version of the C programming language standard, published in 2011, updates C99.

<span class="mw-page-title-main">Microsoft Visual Studio Express</span> Integrated development environment

Microsoft Visual Studio Express was a set of integrated development environments (IDEs) that Microsoft developed and released free of charge. They are function-limited version of the non-free Visual Studio and require mandatory registration. Express editions started with Visual Studio 2005.

Interix was an optional, POSIX-conformant Unix subsystem for Windows NT operating systems. Interix was a component of Windows Services for UNIX, and a superset of the Microsoft POSIX subsystem. Like the POSIX subsystem, Interix was an environment subsystem for the NT kernel. It included numerous open source utility software programs and libraries. Interix was originally developed and sold as OpenNT until purchased by Microsoft in 1999.

Windows Services for UNIX (SFU) is a discontinued software package produced by Microsoft which provided a Unix environment on Windows NT and some of its immediate successor operating-systems.

Windows Template Library (WTL) is a free software, object-oriented C++ template library for Win32 development. WTL was created by Microsoft employee Nenad Stefanovic for internal use and later released as an unsupported add-on to Visual Studio and the Win32 Framework SDK. It was developed primarily as a light-weight alternative to the Microsoft Foundation Classes and builds upon Microsoft's ATL, another lightweight API widely used to create COM and ActiveX libraries.

Microsoft Windows SDK, and its predecessors Platform SDK, and .NET Framework SDK, are software development kits (SDKs) from Microsoft that contain documentation, header files, libraries, samples and tools required to develop applications for Microsoft Windows and .NET Framework. Platform SDK specializes in developing applications for Windows 2000, XP and Windows Server 2003. .NET Framework SDK is dedicated to developing applications for .NET Framework 1.1 and .NET Framework 2.0. Windows SDK is the successor of the two and supports developing applications for Windows XP and later, as well as .NET Framework 3.0 and later.

Borland C++ was a C and C++ IDE released by Borland for MS-DOS and Microsoft Windows. It was the successor to Turbo C++ and included a better debugger, the Turbo Debugger, which was written in protected mode DOS.

The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an overview of the core libraries that are included with every modern Windows installation, on top of which most Windows applications are built.

<span class="mw-page-title-main">Visual Basic (classic)</span> Microsofts programming language based on BASIC and COM

Visual Basic (VB) before .NET, sometimes referred to as Classic Visual Basic, is a third-generation programming language, based on BASIC, and an integrated development environment (IDE), from Microsoft for Windows known for supporting rapid application development (RAD) of graphical user interface (GUI) applications, event-driven programming and both consumption and development of components via the Component Object Model (COM) technology.

<span class="mw-page-title-main">Adobe AIR</span> Cross-platform runtime system for building rich web applications

Adobe AIR is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS, and BlackBerry Tablet OS.

<span class="mw-page-title-main">Visual Studio</span> Code editor and IDE

Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms including Windows API, Windows Forms, Windows Presentation Foundation (WPF), Windows Store and Microsoft Silverlight. It can produce both native code and managed code.

<span class="mw-page-title-main">.NET Framework</span> Software platform developed by Microsoft

The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

RemObjects Software is an American software company founded in 2002 by Alessandro Federici and Marc Hoffman. It develops and offers tools and libraries for software developers on a variety of development platforms, including Embarcadero Delphi, Microsoft .NET, Mono, and Apple's Xcode.

<span class="mw-page-title-main">.NET Framework version history</span>

Microsoft started development on the .NET Framework in the late 1990s originally under the name of Next Generation Windows Services (NGWS). By late 2001 the first beta versions of .NET Framework 1.0 were released. The first version of .NET Framework was released on 13 February 2002, bringing managed code to Windows NT 4.0, 98, 2000, ME and XP.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

<span class="mw-page-title-main">.NET</span> Free and open-source software platform developed by Microsoft

The .NET platform is a free and open-source, managed computer software framework for Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft employees by way of the .NET Foundation and is released under an MIT License.

C++/WinRT is a C++ library for Microsoft's Windows Runtime platform, designed to provide access to modern Windows APIs. C++/WinRT is provided as a standard C++17 header file library, unlike C++/CX, which is an extension to C++ and requires a recent version of Microsoft Visual C++.

References

  1. 1 2 "Visual C++ adds Windows support". InfoWorld. February 22, 1993. p. 17.
  2. Lextrait, Vincent (January 2010). "The Programming Languages Beacon, v10.0". Archived from the original on 30 May 2012. Retrieved 14 March 2010.
  3. "Do I need these Microsoft Visual C++ redistributables?". Ask Leo!. Retrieved 2012-11-18.
  4. Computer Language - Issue 06 (1985-02)(CL Publications)(US). February 1985.
  5. Leibson, Steve (1985-02-01). "Software Reviews: Expert team analyzes 21 C compilers". Computer Language. Retrieved 2020-06-05.
  6. Ladd, Scott Robert (August 1, 1990). "Optimizing With Microsoft C 6.0".
  7. Myers, Ben (1992-07-01). "Microsoft C/C++". PC Magazine . Ziff Davis. p. 387. Retrieved 2023-12-21.
  8. "News/Software Pipeline Announced". InfoWorld . InfoWorld Media Group. 1993-03-15. Retrieved 2023-12-21.
  9. Retrieved from http://support.microsoft.com/kb/196831.
  10. 1 2 "Visual C++ is a strong development tool". InfoWorld. June 21, 1993. p. 94.
  11. "Rival DOS Extenders debut at show". InfoWorld. March 1, 1993. p. 18.
  12. "Visual C++ 1.5 integrates OLE, ODBC". InfoWorld. November 8, 1993. p. 5.
  13. "Microsoft set to prerelease 32-bit Visual C++". InfoWorld. July 19, 1993. p. 12.
  14. "C++ IDEs evolve". InfoWorld. April 4, 1994. p. 79.
  15. "Microsoft Visual C++ Strategy".
  16. 1 2 Cullens, Chane; Blackwell, Ken (1995). Cross-Platform Development Using Visual C++. M&T Books. ISBN   1-55851-428-7 . Retrieved 27 January 2024.
  17. Plamondon, James (9 October 1997). "Generalized Evangelism Timeline" (PDF). Microsoft Corporation. Retrieved 27 January 2024.
  18. 1 2 "Obsolete Products". Archived from the original on 2005-08-14.
  19. Toth, Viktor (1996). "1". Visual C++ 4.0 unleashed. Indianapolis: SAMS Publishing. ISBN   9780672308741 . Retrieved 26 July 2013.
  20. "History of Visual Studio (Part 3)". 6 August 2021.
  21. "Major Changes from Visual C++ 4.0 to 4.2". Archived from the original on 2010-02-28. Retrieved 2018-04-18.
  22. "Major Changes from Visual C++ 4.2 to 5.0".
  23. "Microsoft Visual C++ 5.0 Learning Edition". Microsoft . Archived from the original on April 27, 1999.
  24. "Microsoft Visual C++ 5.0 Professional Edition". Microsoft . Archived from the original on April 27, 1999.
  25. "Microsoft Visual C++ 5.0 Enterprise Edition". Microsoft . Archived from the original on April 17, 1999.
  26. "Microsoft Visual C++ 5.0 RISC Edition". Microsoft . Archived from the original on April 29, 1999.
  27. Shields, Nathan P. (June 8, 2018). "Criminal Complaint". United States Department of Justice. p. 128. 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.
  28. "Major Changes from Visual C++ 5.0 to 6.0". Archived from the original on September 14, 2008.
  29. 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.
  30. Douglas Boling :Programming Microsoft Windows CE .NET, Third Edition Microsoft Press; 3rd edition (June 25, 2003) Paperback: 1264 pages ISBN   978-0735618848 - Companion CD with Microsoft eMbedded Visual C++ 4.0 Service Pack 2 Archived 2013-02-11 at archive.today
  31. How to: Modify WINVER and _WIN32_WINNT
  32. Breaking Changes
  33. Windows Platforms (CRT)
  34. "Visual C++ 2008 Breaking Changes". 25 May 2023.
  35. Visual C++ Team Blog. "IntelliSense, part 2: The Future" . Retrieved March 12, 2008.
  36. "Why IntelliSense is not supported for C++/CLI in Visual Studio 2010" . Retrieved March 13, 2011.
  37. Visual C++ Team Blog (27 May 2009). "Rebuilding Intellisense".
  38. Visual C++ Team Blog. "Visual C++ Code Generation in Visual Studio 2010".
  39. "C++0x Core Language Features In VC10: The Table".
  40. "Stephan T. Lavavej: Everything you ever wanted to know about nullptr".
  41. Microsoft Windows SDK Blog. "Released: Windows SDK for Windows 7 and .NET Framework 4".
  42. 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
  43. "What's New for Visual C++ in Visual Studio 2012". Microsoft Developer Network . Microsoft. 29 November 2012. Retrieved September 20, 2015.
  44. "What's New for Visual C++ in Visual Studio 2013". Microsoft Developer Network . Microsoft. 28 April 2015. Retrieved September 20, 2015.
  45. Eric Battalio (July 20, 2015). "Visual Studio 2015 RTM Now Available". Visual C++ Team Blog. Microsoft.
  46. Stephan T. Lavavej (June 19, 2015). "C++11/14/17 Features In VS 2015 RTM". Visual C++ Team Blog. Microsoft.
  47. Reviewing Microsoft's Automatic Insertion of Telemetry into C++ Binaries
  48. "Visual Studio adding telemetry function calls to binary? • /r/cpp". reddit. 7 May 2016. Retrieved 2016-08-17.
  49. Julia Liuson (March 7, 2017). "Announcing Visual Studio 2017 General Availability… and more". Visual Studio Team Blog. Microsoft.
  50. Amanda Silver (February 14, 2019). "Join us April 2nd for the Launch of Visual Studio 2019!". Visual Studio Team Blog. Microsoft.
  51. Amanda Silver (November 8, 2021). "Visual Studio 2022 now available". Visual Studio Team Blog. Microsoft.
  52. "Pre-defined Compiler Macros / Wiki / Compilers". dev.to. 22 May 2018. Retrieved 2023-02-20.
  53. "Predefined Macros / Microsoft Learn". learn.microsoft.com. 8 August 2022. Retrieved 2023-05-26.
  54. Microsoft MSDN: Breaking Changes in Visual C++
  55. Microsoft MSDN: Containers (Modern C++)
  56. Microsoft MSDN: Portability At ABI Boundaries (Modern C++)
  57. Microsoft forum: Binary compatibility across Visual C++ versions Archived 2013-02-16 at archive.today
  58. docs.microsoft.com: C++ binary compatibility between Visual Studio 2015, 2017, and 2019
  59. 1 2 C Run-Time Libraries
  60. "Compatibility". Microsoft: CRT library features. 26 October 2022.
  61. "C99 support". Microsoft Connect. Archived from the original on 2016-03-04. Retrieved 2015-09-21.
  62. "What's New for Visual C++ in Visual Studio 2013". Microsoft Developer Network. Microsoft. 28 April 2015.
  63. Pat Brenner (July 19, 2013). "C99 library support in Visual Studio 2013". Visual C++ Team Blog. Microsoft.
  64. "What's New for Visual C++ in Visual Studio 2015". Microsoft Developer Network. Microsoft. 3 January 2018.
  65. "Walkthrough: Compile a C program on the command line". Visual C++ Documentation. Microsoft. 10 May 2022.
  66. "MSVC 2017 does not support _Generic (type generic macros) in C".
  67. Luvsanbat, Bat-Ulzii (July 6, 2018). "MSVC Preprocessor Progress towards Conformance". Microsoft Developer Network . Archived from the original on 3 Mar 2024.
  68. "C++20 Features and Fixes". reddit . July 3, 2020.
  69. "C11 and C17 Standard Support Arriving in MSVC". September 14, 2020.
  70. "C11 Atomics in Visual Studio 2022 version 17.5 Preview 2". 2022-12-13.
  71. "C11 Threads in Visual Studio 2022 version 17.8 Preview 2". 2023-09-26.
  72. Murphy, Adrian (2023-11-14). "Visual Studio 17.8 now available!". Visual Studio Blog. Retrieved 2024-01-12.
  73. "Two-phase name lookup support comes to MSVC". 2017-09-11.

Further reading