Referencia rápida (C++/CX)

Windows Runtime admite aplicaciones de Plataforma universal de Windows (UWP). Estas aplicaciones solo se ejecutan en un entorno de sistema operativo de confianza, usan funciones, tipos de datos y dispositivos autorizados, y se distribuyen a través de la Microsoft Store. C++/CX simplifican la escritura de aplicaciones para Windows Runtime. Este artículo es una referencia rápida; para obtener documentación más completa, consulte Sistema de tipos.

Al compilar en la línea de comandos, utilice la opción de compilador /ZW para compilar una aplicación UWP o un componente de Windows Runtime. Para tener acceso a las declaraciones de Windows Runtime, que se definen en los archivos de metadatos (.winmd) de Windows Runtime, especifique la directiva #using o la opción del compilador /FU. Cuando crea un proyecto para una aplicación UWP, Visual Studio establece de forma predeterminada estas opciones y agrega referencias a todas las bibliotecas de Windows Runtime.

Referencia rápida

Concepto C++ estándar C++/CX Comentarios
Tipos fundamentales Tipos fundamentales de C++. Tipos fundamentales de C++/CX que implementan tipos fundamentales definidos en Windows Runtime. El espacio de nombres default contiene tipos fundamentales integrados de C++/CX. El compilador asigna implícitamente los tipos fundamentales de C++/CX a los tipos de C++ estándar.

La familia Platform de espacios de nombres contiene tipos que implementan los tipos fundamentales de Windows Runtime.
bool bool Un valor booleano de 8 bits.
wchar_t, char16_t char16 Un valor no numérico de 16 bits que representa un punto de código Unicode (UTF-16).
short

unsigned short
int16

uint16
Entero de 16 bits con signo.

Entero de 16 bits sin signo.
int

unsigned int
int

uint32
Entero de 32 bits con signo.

Entero de 32 bits sin signo.
long long O bien __int64

unsigned long long
int64

uint64
Entero de 64 bits con signo.

Entero de 64 bits sin signo.
float, double float32, float64 Un número de punto flotante de 32 bits o 64 bits conforme a IEEE 754.
enum enum class

o bien

enum struct
Una enumeración de 32 bits.
(No procede) Platform::Guid Un valor no numérico de 128 bits (GUID) en el espacio de nombres Platform .
std::time_get Windows::Foundation::DateTime Una estructura de fecha y hora.
(No procede) Windows::Foundation::TimeSpan Una estructura de intervalo de tiempo.
(No procede) Platform::Object^ Objeto base con recuento de referencias en la vista de C++ del sistema de tipos de Windows Runtime.
std::wstring

L"..."
Platform::String^ Platform::String^ es una secuencia inmutable con recuento de referencias de caracteres Unicode que representan texto.
Puntero Puntero a objeto (*):

std::shared_ptr
Identificador-a-objeto (^, pronunciado “sombrero”):

T^ identifier
Todas las clases de Windows Runtime se declaran mediante el modificador "identificador a objeto". Se obtiene acceso a los miembros del objeto mediante el operador de acceso de miembro de clase flecha (->).

El modificador "sombrero" significa "puntero a un objeto de Windows Runtime con recuento automático de referencias". Más precisamente, el identificador de objeto declara que el compilador debe insertar código para administrar automáticamente el recuento de referencias del objeto y eliminar el objeto si el recuento de referencias es cero.
Referencia Referencia a un objeto (&):

T& identifier
Referencia de seguimiento (%):

T% identifier
Solo los tipos de Windows Runtime pueden declararse mediante el modificador de referencia de seguimiento. Se obtiene acceso a los miembros del objeto mediante el operador de acceso de miembro de clase punto (.).

La referencia de seguimiento significa "una referencia a un objeto de Windows Runtime que se cuenta automáticamente". Más precisamente, una referencia de seguimiento declara que el compilador debe insertar código para administrar automáticamente el recuento de referencias del objeto. El código elimina el objeto si el recuento de referencias es cero.
declaración de tipos dinámica new ref new Asigna un objeto de Windows Runtime y devuelve un identificador a ese objeto.
administración de vigencia de objeto delete identifier

delete[] identifier
(Invoca el destructor). La vigencia la determina el recuento de referencias. Una llamada a delete llama al destructor pero en sí no libera memoria.
declaración de matriz T identifier[]

std::array identifier
Array<T^>^ identifier( size )

-O-

WriteOnlyArray<T^> identifier( size )
Declara una matriz de solo escritura modificable unidimensional de tipo T^. La matriz en sí también es un objeto con recuento de referencias que se debe declarar mediante el modificador "identificador a objeto".

Las declaraciones de matriz utilizan una clase de encabezado de plantilla que se encuentra en el espacio de nombres Platform .
Declaración de clase class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
Declara una clase en tiempo de ejecución que tiene accesibilidad private predeterminada.

Declara una clase en tiempo de ejecución que tiene accesibilidad public predeterminada.
declaración de estructura struct identifier {}

(es decir, una estructura Plain Old Data (POD))
value class identifier {}

value struct identifier {}
Declara una estructura de POD que tiene accesibilidad private predeterminada.

value class se puede representar en metadatos de Windows, pero no se puede representar un C++ class estándar.

Declara una estructura de POD que tiene accesibilidad public predeterminada.

value struct se puede representar en metadatos de Windows, pero no se puede representar un C++ struct estándar.
declaración de interfaz clase abstracta que solo contiene funciones virtuales puras. interface class identifier {}

interface struct identifier {}
Declara una interfaz que tiene accesibilidad private predeterminada.

Declara una interfaz que tiene accesibilidad public predeterminada.
Delegado std::function public delegate return-type delegate-type-identifier ([ parameters ]); Declara un objeto que se puede invocar como una llamada de función.
Evento (No procede) event delegate-type-identifier event-identifier;

delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this[, parameters]);

event-identifier += *delegate-identifier;

o bien

EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier;

o bien

auto token-identifier = object.event-identifier::add( delegate-identifier );

object.event-identifier -= token-identifier;

o bien

object.event-identifier::remove( token-identifier );
Declara un objeto event, que almacena una colección de controladores de eventos (delegados) a los que se llama cuando se produce un evento.

Crear un controlador de eventos.

Agrega un controlador de eventos.

Cuando se agrega un controlador de eventos, se devuelve un token de evento (token-identifier). Si vas a quitar explícitamente el controlador de eventos, debes guardar el token de evento para uso posterior.

Quita un controlador de eventos.

Para quitar un controlador de eventos, debes especificar el token de evento que guardaste al agregar el controlador de eventos.
Propiedad (No procede) property T identifier;

property T identifier[ index ];

property T default[ index ];
Declara que se tiene acceso a una función miembro de clase o de objeto mediante la misma sintaxis que se utiliza para tener acceso a un miembro de datos o a un elemento de matriz indizado.

Declara una propiedad en una función miembro de clase o de objeto.

Declara una propiedad indizada en una función miembro de objeto.

Declara una propiedad indizada en una función miembro de clase.
Tipos parametrizados templates generic <typename T> interface class identifier {}

generic <typename T > delegate[return-type]delegate-identifier() {}
Declara una clase de interfaz parametrizada.

Declara un delegado parametrizado.
Tipos de valor que aceptan valores NULL std::optional<T> Platform::IBox <T> Permite a variables de tipos escalares y estructuras value obtener un valor de nullptr.

Consulte también

Referencia del lenguaje C++/CX