C++ in Visual Studio

Note

This developer documentation applies to Visual Studio 2019. To see the documentation for your preferred version of Visual Studio, use the Version selector control. It's found at the top of the table of contents on this page.

If you're looking for a Microsoft Visual C++ 2019 redistributable package so that you can run a program, go to the Microsoft Visual Studio site's Downloads page. Under All Downloads, expand the Other Tools, Frameworks, and Redistributables section. Select your target architecture, then choose the Download button.

For older redistributables, open the Older downloads page. Expand the Other Tools, Frameworks, and Redistributables section. Find the redistributable version you want to download, select your target architecture, then choose the Download button.

Note

This developer documentation applies to Visual Studio 2017. To see the documentation for your preferred version of Visual Studio, use the Version selector control. It's found at the top of the table of contents on this page.

If you're looking for a Microsoft Visual C++ 2017 or older redistributable package so that you can run a program, go to the Microsoft Visual Studio site's Older downloads page. Expand the Other Tools, Frameworks, and Redistributables section. Find the redistributable version you want to download, select your target architecture, then choose the Download button.

Note

This developer documentation applies to Visual Studio 2015. To see the documentation for your preferred version of Visual Studio, use the Version selector control. It's found at the top of the table of contents on this page.

If you're looking for a Microsoft Visual C++ 2015 or older redistributable package so that you can run a program, go to the Microsoft Visual Studio site's Older downloads page. Expand the Other Tools, Frameworks, and Redistributables section. Find the redistributable version you want to download, select your target architecture, then choose the Download button.

Microsoft Visual C++ (MSVC) refers to the C++, C, and assembly language development tools and libraries available as part of Visual Studio on Windows. These tools and libraries let you create Universal Windows Platform (UWP) apps, native Windows desktop and server applications, cross-platform libraries and apps that run on Windows, Linux, Android, and iOS, as well as managed apps and libraries that use the .NET Framework. You can use MSVC to write anything from simple console apps to the most sophisticated and complex apps for Windows desktop, from device drivers and operating system components to cross-platform games for mobile devices, and from the smallest IoT devices to multi-server high performance computing in the Azure cloud.

Visual Studio 2015, 2017 and 2019 can be installed side-by-side. You can use Visual Studio 2019 (compiler toolset v142) or Visual Studio 2017 (v141) to edit and build programs using the toolset from Visual Studio 2017 (v141) and Visual Studio 2015 (v140).

What's New and Conformance History

What's New for C++ in Visual Studio
Find out what's new in Visual Studio.

What's New for C++ in Visual Studio 2003 through 2015
Find out what was new in C++ for each version of Visual Studio from 2003 through 2015.

C++ conformance improvements in Visual Studio
Learn about C++ conformance improvements in Visual Studio.

Microsoft C++ language conformance table
A list of conformance status by feature in the MSVC C++ compiler.

Microsoft C/C++ change history 2003 - 2015
Learn about the breaking changes in previous versions.

Install Visual Studio and upgrade from earlier versions

Install C++ support in Visual Studio
Download Visual Studio and install the Microsoft C/C++ toolset.

Microsoft C++ porting and upgrading guide
Guidance for porting code and upgrading projects to Visual Studio 2015 or later to take advantage of greater compiler conformance to the C++ standard as well as greatly improved compilation times and security features such as Spectre mitigation.

C++ tools and features in Visual Studio editions
Find out about different Visual Studio editions.

Supported platforms
Find out which platforms the Microsoft C/C++ compiler supports.

Learn C++

Welcome back to C++
Learn more about modern C++ programming techniques based on C++11 and later that enable you to write fast, safe code and avoid many of the pitfalls of C-style programming.

Standard C++
Learn about C++, get an overview of Modern C++, and find links to books, articles, talks, and events

Learn Visual Studio and make your first C++ project
Start learning how to write C++ in Visual Studio.

Visual Studio C++ samples
Information about the C++ code samples provided by Microsoft.

C++ development tools

Overview of C++ development in Visual Studio
How to use the Visual Studio IDE to create projects, edit code, link to libraries, compile, debug, create unit tests, do static analysis, deploy, and more.

Projects and build systems
How to create and configure Visual Studio C++ projects, CMake projects, and other kinds of projects with MSVC compiler and linker options.

Writing and refactoring C++ code
How to use the productivity features in the C++ editor to refactor, navigate, understand and write code.

Debugging native code
Use the Visual Studio debugger with C++ projects.

Code analysis for C/C++ overview
Use SAL annotations or the C++ Core Guidelines checkers to perform static analysis.

Write unit tests for C/C++ in Visual Studio
Create unit tests using the Microsoft Unit Testing Framework for C++, Google Test, Boost.Test, or CTest.

Write applications in C++

Universal Windows Apps (C++)
Find guides and reference content on the Windows Developer Center. For information about developing UWP apps, see Intro to the Universal Windows Platform and Create your first UWP app using C++.

Desktop applications (C++)
Learn how to create traditional native C++ desktop applications for Windows.

.NET programming with C++/CLI
Learn how to create DLLs that enable interoperability between native C++ and .NET programs written in languages such as C# or Visual Basic.

Linux programming
Use the Visual Studio IDE to code and deploy to a remote Linux machine for compilation with GCC.

Create C/C++ DLLs in Visual Studio
Find out how to use Win32, ATL, and MFC to create Windows desktop DLLs, and provides information about how to compile and register your DLL.

Parallel programming
Learn how to use the Parallel Patterns Library, C++ AMP, OpenMP, and other features that are related to multithreading on Windows.

Security best practices
Learn how to protect applications from malicious code and unauthorized use.

Cloud and web programming
In C++, you have several options for connecting to the web and the cloud.

Data access
Connect to databases using ODBC and OLE DB.

Text and strings
Learn about working with different text and string formats and encodings for local and international development.

Languages reference

C++ language reference
The reference guide to the Microsoft implementation of the C++ programming language.

C/C++ preprocessor reference
A common reference to the shared C and C++ language preprocessor.

C language reference
The reference guide to the Microsoft implementation of the C programming language.

Compiler intrinsics and assembly language
Guides to the compiler intrinsics supported or implemented by the Microsoft C/C++ compilers on each platform.

C++ Libraries in Visual Studio

The following sections provide information about the different C and C++ libraries that are included in Visual Studio.

C runtime library reference
Includes security-enhanced alternatives to functions that are known to pose security issues.

C++ standard library
The C++ Standard Library.

Active Template Library (ATL)
Support for COM components and apps.

Microsoft Foundation Class (MFC) libraries
Support for creating desktop apps that have traditional or Office-style user interfaces.

Parallel Patterns Library (PPL)
Asynchronous and parallel algorithms that execute on the CPU.

C++ AMP (C++ Accelerated Massive Parallelism)
Massively parallel algorithms that execute on the GPU.

Windows Runtime Template Library (WRL)
Universal Windows Platform (UWP) apps and components.

.NET programming with C++/CLI
Programming for the common language runtime (CLR).

Third-party open source C++ libraries

The cross-platform vcpkg command-line tool greatly simplifies the discovery and installation of over 900 C++ open source libraries. For more information, see vcpkg.

Feedback and community

Microsoft Docs Q&A
Microsoft Docs hosts searchable forums for questions and answers. Add a C++ tag to your post for community assistance on C++-related issues.

How to report a problem with the Microsoft C/C++ toolset
Learn how to create effective error reports against the Microsoft C/C++ toolset (compiler, linker, and other tools), and ways to submit your report.

Microsoft C++ Team Blog
Learn more about new features and the latest information from the developers of the C++ tools in Visual Studio.

Visual Studio C++ Developer Community
Get help, file bugs, and make suggestions for C++ in Visual Studio.