Share via

C++/CX Language Reference

C++/CX is a set of extensions to the C++ language that enable the creation of Windows apps and Windows Runtime components in an idiom that is as close as possible to modern C++. Use C++/CX to write Windows apps and components in native code that easily interact with Visual C#, Visual Basic, and JavaScript, and other languages that support the Windows Runtime. In those rare cases that require direct access to the raw COM interfaces, or non-exceptional code, you can use the Windows Runtime C++ Template Library (WRL).


C++/WinRT is the recommended alternative to C++/CX. It is a new, standard C++17 language projection for Windows Runtime APIs, available in the latest Windows SDK from version 1803 (10.0.17134.0) onward. C++/WinRT is implemented entirely in header files, and designed to provide you with first-class access to the modern Windows API.

With C++/WinRT, you can both consume and author Windows Runtime APIs using any standards-conformant C++17 compiler. C++/WinRT typically performs better and produces smaller binaries than any other language option for the Windows Runtime. We will continue to support C++/CX and WRL, but highly recommend that new applications use C++/WinRT. For more information, see C++/WinRT.

By using C++/CX, you can create:

Link Description
Quick Reference Table of keywords and operators for C++/CX.
Type System Describes basic C++/CX types and programming constructs, and how to utilize C++/CX to consume and create Windows Runtime types.
Building apps and libraries Discusses how to use the IDE to build apps and link to static libraries and DLLs.
Interoperating with Other Languages Discusses how components that are written by using C++/CX can be used with components that are written in JavaScript, any managed language, or the Windows Runtime C++ Template Library.
Threading and Marshaling Discusses how to specify the threading and marshaling behavior of components that you create.
Namespaces Reference Reference documentation for the default namespace, the Platform namespace, Platform::Collections, and related namespaces.
CRT functions not supported in Universal Windows Platform apps Lists the CRT functions that are not available for use in Windows Runtime apps.
Get started with Windows apps Provides high-level guidance about Windows UWP apps and links to more information.
C++/CX Part 0 of [n]: An Introduction

C++/CX Part 1 of [n]: A Simple Class

C++/CX Part 2 of [n]: Types That Wear Hats

C++/CX Part 3 of [n]: Under Construction

C++/CX Part 4 of [n]: Static Member Functions
An introductory blog series on C++/CX.