Visual C++

The powerful and flexible Visual C++ language and tools in Visual Studio enable the development of native Windows Store apps, native desktop apps, and managed apps that run on the .NET Framework. Visual C++ includes these components:

Visual Studio development environment

The development environment supports the entire development workflow, from creating and managing projects through writing code, debugging, profiling, and deploying to end users.

Visual C++compiler tools

The compiler supports both native code development and development that targets the .NET common language runtime (CLR). Visual C++ directly supports compilation for x86 computers, and also includes compilers that target x64 and ARM. It optimizes performance for all platforms.

C Runtime Library (CRT)

Includes security-enhanced alternatives to functions that are known to pose security issues.

Standard C++ Library

Contains the iostreams library and the Standard Template Library (STL).

Active Template Library (ATL)

For the creation of COM components and apps.

Microsoft Foundation Class (MFC) libraries

For the creation of desktop apps that have traditional or Office-style user interfaces.

Parallel Patterns Library (PPL)

For asynchronous and parallel algorithms that execute on the CPU.

C++ AMP (C++ Accelerated Massive Parallelism)

For massively parallel algorithms that execute on the GPU.

Windows Runtime C++ Template Library (WRL),

For the COM-style development of Windows Store apps and components.

The .NET Framework class libraries (by using C++/CLI), STL/CLR, and the C++ Support Library

For the development of managed apps.

In addition, when you use Visual C++ you can also access the Windows APIs for both Windows Store apps and desktop apps. The header files and .winmd files for these APIs are included in Visual Studio, in the Windows Software Development Kit (SDK) for Windows 8.

Note Note

Visual Studio Express 2012 for Windows 8 supports only the creation and deployment of Windows Store apps and components, and doesn't support desktop or console apps. For desktop development, you can use Visual Studio Express 2012 for Windows Desktop or one of the Visual Studio 2012 editions. For information about Visual Studio editions, see Visual C++ Tools and Templates in Visual Studio Editions

Getting Started with Visual C++ in Visual Studio 2012

Information about how to start using this release.

C++ Language and Standard Libraries

Contains programming guides and reference content for the C++ language and libraries.

Windows Store Apps

Links to guides and reference content on the Windows Developer Center.

Win32 Desktop Apps (Visual C++)

Contains guides and reference content for creating desktop applications with a message loop and callbacks.


Contains guides and reference content for the Active Template Library and Microsoft Foundation Classes.

DLLs in Visual C++

Describes 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 in Visual C++

Contains guides and reference content for the Parallel Patterns Library, C++ AMP, OpenMP, and other features that are related to multithreading on Windows.

.NET Programming in Visual C++

Provides information that's specific to programming for the common language runtime (CLR).

Compiler Intrinsics and Assembly Language

Contains guides and reference content for the Microsoft Macro Assembler.

Tools for Visual C++ Development

Contains guides and reference content about how to create projects, write code, debug, profile, deploy, and more.

Specialized Tasks (Visual C++)

Provides additional information about subjects that are relevant for Visual C++ programming.

Security Best Practices for C++

Provides suggestions about how to protect applications from malicious code and unauthorized use.

Visual C++ Samples

Links to comprehensive project samples.

Learn Visual C++

This part of the Visual Studio Developer Center website contains guidance for people who are just starting to learn C++.

Community Additions