Referência rápida (C++/CX)
O Windows Runtime dá suporte a aplicativos UWP (Plataforma Universal do Windows). Esses aplicativos são executados apenas em um ambiente de sistema operacional confiável, usam funções, tipos de dados e dispositivos autorizados e são distribuídos por meio da Microsoft Store. O C++/CX simplifica a escrita de aplicativos para o Windows Runtime. Este artigo é uma referência rápida. Para obter uma documentação mais completa, confira Sistema de tipos.
Ao compilar na linha de comando, use a opção de compilador /ZW
para compilar um aplicativo UWP ou componente do Windows Runtime. Para acessar as declarações do Windows Runtime, que são definidas nos novos arquivos de metadados (.winmd) do Windows Runtime, especifique a diretiva #using
ou a opção de compilador /FU
. Quando você cria um projeto para um aplicativo UWP, por padrão, o Visual Studio define essas opções e adiciona referências a todas as bibliotecas do Windows Runtime.
Referência rápida
Conceito | C++ Padrão | C++/CX | Comentários |
---|---|---|---|
Tipos fundamentais | Tipos fundamentais do C++. | Os tipos fundamentais do C++/CX que implementam os tipos fundamentais definidos no Windows Runtime. | O namespace default contém tipos fundamentais internos do C++/CX. O compilador mapeia implicitamente tipos fundamentais C++/CX para tipos C++ padrão.A família de namespaces Platform contém tipos que implementam tipos fundamentais do Windows Runtime. |
bool |
bool |
Um valor Booliano de 8 bits. | |
wchar_t , char16_t |
char16 |
Um valor não numérico de 16 bits que representa um ponto de código Unicode (UTF-16). | |
short unsigned short |
int16 uint16 |
Um inteiro de 16 bits com sinal. Um inteiro sem sinal de 16 bits. |
|
int unsigned int |
int uint32 |
Um inteiro com sinal de 32 bits. Um inteiro sem sinal de 32 bits. |
|
long long - ou - __int64 unsigned long long |
int64 uint64 |
Um inteiro com sinal de 64 bits. Um inteiro sem sinal de 64 bits. |
|
float , double |
float32 , float64 |
Um número de ponto flutuante IEEE 754 de 32 ou 64 bits. | |
enum |
enum class -ou- enum struct |
Uma enumeração de 32 bits. | |
(Não se aplica) | Platform::Guid |
Um valor não numérico de 128 bits (uma GUID) no namespace Platform . |
|
std::time_get |
Windows::Foundation::DateTime |
Uma estrutura date-time. | |
(Não se aplica) | Windows::Foundation::TimeSpan |
Uma estrutura timespan. | |
(Não se aplica) | Platform::Object^ |
O objeto base contado por referência na exibição C++ do sistema de tipos do Windows Runtime. | |
std::wstring L"..." |
Platform::String^ |
Platform::String^ é uma sequência de caracteres Unicode imutável, contada por referência, que representa texto. |
|
Ponteiro | Ponteiro para objeto (* ):std::shared_ptr |
Handle-to-object (^ ou "hat"):T^ identifier |
Todas as classes do Windows Runtime são declaradas usando o modificador handle-to-object. Os membros do objeto são acessados usando o operador de acesso ao membro da classe (-> ) de seta.O modificador hat significa "ponteiro para um objeto Windows Runtime que é contado automaticamente de referência". Mais precisamente, handle-to-object declara que o compilador deve inserir código para gerenciar automaticamente a contagem de referência de objeto e excluirá o objeto se a contagem de referência chegar a zero |
Referência | Referência para um objeto (& ):T& identifier |
Referência de rastreamento (% ):T% identifier |
Somente os tipos do Windows Runtime podem ser declarados usando o modificador de referência de rastreamento. Os membros do objeto são acessados usando o operador de acesso ao membro da classe (. ) de ponto.A referência de acompanhamento significa "uma referência a um objeto Windows Runtime que é contado automaticamente". Mais precisamente, uma referência de acompanhamento declara que o compilador deve inserir código para gerenciar a contagem de referência do objeto automaticamente. O código excluirá o objeto se a contagem de referências chegar a zero. |
Declaração de tipo dinâmico | new |
ref new |
Aloca um objeto do Windows Runtime e retorna um identificador para esse objeto. |
gerenciamento de vida útil de objeto | delete identifier delete[] identifier |
(Invoca o destruidor.) | A vida útil é determinada pela contagem de referência. Uma chamada para delete invoca o destruidor, mas ele próprio não libera memória. |
declaração de matriz | T identifier[] std::array identifier |
Array<T^>^ identifier( size ) -ou- WriteOnlyArray<T^> identifier( size ) |
Declara uma matriz unidimensional modificável ou somente gravação do tipo T^ . A própria matriz também é um objeto contado por referência que deve ser declarada usando o modificador handle-to-object.(As declarações de matriz usam uma classe de cabeçalho de modelo que está no namespace Platform ) |
declaração de classe | class identifier {} struct identifier {} |
ref class identifier {} ref struct identifier {} |
Declara uma classe de runtime que tem acessibilidade private padrão.Declara uma classe de runtime que tem acessibilidade public padrão. |
declaração de estrutura | struct identifier {} (isto é, uma estrutura POD (Plain Old Data)) |
value class identifier {} value struct identifier {} |
Declara um struct POD que tem acessibilidade private padrão.Um value class pode ser representado em metadados do Windows, mas um class C++ padrão não pode ser.Declara um struct POD que tem acessibilidade public padrão.Um value struct pode ser representado em metadados do Windows, mas um struct C++ padrão não pode ser. |
declaração de interface | classe abstrata que contém apenas funções virtuais puras. | interface class identifier {} interface struct identifier {} |
Declara uma interface que tem acessibilidade private padrão.Declara uma interface que tem acessibilidade public padrão. |
Delegar | std::function |
public delegate return-type delegate-type-identifier ( [ parâmetros ] ); |
Declara um objeto que pode ser chamado como uma chamada de função. |
Evento | (Não se aplica) | event delegate-type-identifier event-identifier; delegate-type-identifier delegate-identifier = ref new delegate-type-identifier( this [, parâmetros] ); event-identifier += *delegate-identifier; -ou- EventRegistrationToken token-identifier = object.event-identifier += delegate-identifier; -ou- auto token-identifier = object.event-identifier::add( delegate-identifier ); object.event-identifier -= token-identifier; -ou- object.event-identifier::remove( token-identifier ); |
Declara um objeto event , que armazena uma coleção de manipuladores de eventos (delegados) que são chamados quando ocorre um evento.Cria um manipulador de eventos. Adiciona um manipulador de eventos. A adição de um manipulador de eventos retorna um token de evento ( token-identifier ). Se você pretende remover explicitamente o manipulador de eventos, deverá salvar o token de evento para uso posterior.Remove um manipulador de eventos. Para remover um manipulador de eventos, você deve especificar o token de evento salvo quando o manipulador de eventos foi adicionado. |
Propriedade | (Não se aplica) | property T identifier; property T identifier[ index ]; property T default[ index ]; |
Declara que uma função de membro de classe ou objeto é acessada usando a mesma sintaxe usada para acessar um membro de dados ou elemento de matriz indexada. Declara uma propriedade em uma função de membro de classe ou objeto. Declara uma propriedade indexada em uma função de membro de objeto. Declara uma propriedade indexada em uma função de membro de classe. |
Tipos parametrizados | modelos | generic <typename T> interface class identifier {} generic <typename T > delegate [return-type ] delegate-identifier() {} |
Declara uma classe com de interface parametrizada. Declara um delegado parametrizado. |
Tipos de valor anuláveis | std::optional<T> |
Platform::IBox <T> |
Permite que variáveis de tipos escalares e structs value tenham um valor de nullptr . |