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). | |
shortunsigned short |
int16uint16 |
Entero de 16 bits con signo. Entero de 16 bits sin signo. |
|
intunsigned int |
intuint32 |
Entero de 32 bits con signo. Entero de 32 bits sin signo. |
|
long long O bien __int64unsigned long long |
int64uint64 |
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 classo 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::wstringL"..." |
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 | deletedeletedelete[]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 Tstd::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-identifierdelegate-type-identifierdelegate-identifierdelegate-type-identifier[, parámetros] event-identifierdelegate-identifier o bien EventRegistrationTokenEventRegistrationToken = = ..+=+=;o bien autoauto = = . event-identifierdelegate-identifierobjevent-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índicepropertypropertydefault[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. |