Referencia rápida (C++/CX)

Windows Runtime admite aplicaciones de plataforma universal de Windows (UWP) que se ejecutan solo en un entorno de sistema operativo de confianza, usan funciones autorizadas, tipos de datos y dispositivos, y se distribuyen a través del Microsoft Store. C++/CX simplifica la escritura de aplicaciones para el entorno Windows runtime. Este artículo es una referencia rápida; Para obtener documentación más completa, vea Type System.

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

Referencia rápida

Concepto Standard C++ C++/CX Comentarios
Tipos fundamentales Tipos fundamentales de C++. Tipos fundamentales de C++/CX que implementan tipos fundamentales que se definen en el entorno Windows runtime. El espacio de nombres contiene tipos fundamentales default integrados de C++/CX. El compilador asigna implícitamente tipos fundamentales de C++/CX a tipos estándar de C++.

La Platform familia de espacios de nombres contiene tipos que implementan tipos fundamentales 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 Windows de tipos en tiempo de ejecución.
std::wstring

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

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

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

El modificador hat significa "puntero a un Windows runtime al que se cuenta automáticamente la referencia". Más concretamente, el identificador a 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 va a cero.
Referencia Referencia a un objeto (&):

Tidentifier
Referencia de seguimiento (%):

Tidentifier
Solo Windows en tiempo de ejecución se pueden declarar 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 Windows runtime que se cuenta automáticamente como referencia". Más concretamente, una referencia de seguimiento 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 va a cero.
declaración de tipos dinámica new ref new Asigna un objeto Windows runtime y, a continuación, devuelve un identificador a ese objeto.
administración de vigencia de objeto deletedelete

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

std::arraystd::array
Array<Array<^>^^>^(()

o bien

WriteOnlyArray<WriteOnlyArray<^>^>(()
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 classclass{}

structstruct{}
ref classref class{}

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

Declara una clase en tiempo de ejecución que tiene accesibilidad pública predeterminada.
declaración de estructura structstruct{}

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

value structvalue struct{}
Declara un struct de POD que tiene accesibilidad privada predeterminada.

Una clase de valor se puede representar en metadatos de Windows, pero una clase de C++ estándar no se puede.

Declara un struct de POD que tiene accesibilidad pública predeterminada.

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

interface structinterface struct{}
Declara una interfaz que tiene accesibilidad privada predeterminada.

Declara una interfaz que tiene accesibilidad pública predeterminada.
Delegado std::function public delegatepublic delegatedelegate-type-identifier[parámetros] Declara un objeto que se puede invocar como una llamada de función.
Evento (No procede) eventeventevent-identifier

delegate-type-identifierdelegate-identifierdelegate-type-identifier[, parámetros]

event-identifierdelegate-identifier

o bien

EventRegistrationTokenEventRegistrationToken = = ..+=+=;

o bien

autoauto = = . event-identifierdelegate-identifier

objevent-identifiertoken-identifier

o bien

objevent-identifiertoken-identifier
Declare un objeto de evento, 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) propertyproperty;

propertypropertyidentifieríndice

propertypropertydefault[default[];
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 plantillas generic <typenamegeneric <typename> interface class> interface class{}

generic <typenamegeneric <typename> delegate> delegatedelegate-identifier
Declara una clase de interfaz parametrizada.

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

Vea también

Referencia del lenguaje C++/CX