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 bien 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. |
Delegar | std::function |
public delegate return-type delegate-type-identifier ( [ parámetros ] ); |
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 [, parámetros] ); 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 | plantillas | 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 valores que aceptan valores NULL | std::optional<T> |
Platform::IBox <T> |
Permite a variables de tipos escalares y estructuras value obtener un valor de nullptr . |