Partilhar via


Referência rápida (C++/CX)

O Tempo de Execução do Windows oferece suporte a aplicativos da Plataforma Universal do Windows (UWP). Estas aplicações são executadas apenas num ambiente de sistema operativo fiável, utilizam funções, tipos de dados e dispositivos autorizados e são distribuídas através da Microsoft Store. O C++/CX simplifica a escrita de aplicativos para o Tempo de Execução do Windows. Este artigo é uma referência rápida; para obter documentação mais completa, consulte Sistema de tipos.

Ao criar na linha de comando, use a /ZW opção de compilador para criar um aplicativo UWP ou um componente do Tempo de Execução do Windows. Para acessar declarações do Tempo de Execução do Windows, que são definidas nos arquivos de metadados do Tempo de Execução do Windows (.winmd), especifique a #using diretiva ou a opção do /FU compilador. Quando você cria um projeto para um aplicativo UWP, o Visual Studio por padrão define essas opções e adiciona referências a todas as bibliotecas do Tempo de Execução do Windows.

Referência rápida

Conceito C++ padrão C++/CX Observações
Tipos fundamentais Tipos fundamentais C++. Tipos fundamentais C++/CX que implementam tipos fundamentais definidos no Tempo de Execução do Windows. O default namespace contém tipos fundamentais internos de C++/CX. O compilador mapeia implicitamente os tipos fundamentais C++/CX para tipos C++ padrão.

A Platform família de namespaces contém tipos que implementam tipos fundamentais do Tempo de Execução do Windows.
bool bool Um valor booleano 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 assinado de 16 bits.

Um inteiro não assinado de 16 bits.
int

unsigned int
int

uint32
Um inteiro assinado de 32 bits.

Um inteiro não assinado de 32 bits.
long long -ou- __int64

unsigned long long
int64

uint64
Um inteiro assinado de 64 bits.

Um inteiro não assinado de 64 bits.
float, double float32, float64 Um número de ponto flutuante IEEE 754 de 32 bits 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 (um GUID) no Platform namespace.
std::time_get Windows::Foundation::DateTime Uma estrutura de data-hora.
(Não se aplica) Windows::Foundation::TimeSpan Uma estrutura de período de tempo.
(Não se aplica) Platform::Object^ O objeto base contado por referência no modo de exibição C++ do sistema de tipos do Tempo de Execução do Windows.
std::wstring

L"..."
Platform::String^ Platform::String^ é uma sequência de caracteres Unicode, imutável e com contagem de referências, que representa texto.
Ponteiro Ponteiro para o objeto (*):

std::shared_ptr
Handle-to-object (^, pronuncia-se "chapéu"):

T^ identifier
Todas as classes do Tempo de Execução do Windows são declaradas usando o modificador handle-to-object. Os membros do objeto são acessados usando a seta (->) operador class-member-access.

O modificador hat significa "ponteiro para um objeto do Tempo de Execução do Windows que é automaticamente contado como referência". Mais precisamente, handle-to-object declara que o compilador deve inserir código para gerenciar a contagem de referência do objeto automaticamente e excluir o objeto se a contagem de referência for zero
Referência Referência a um objeto (&):

T& identifier
Referência de rastreamento (%):

T% identifier
Somente os tipos do Tempo de Execução do Windows podem ser declarados usando o modificador de referência de rastreamento. Os membros do objeto são acessados usando o operador dot (.) class-member-access.

A referência de acompanhamento significa "uma referência a um objeto do Tempo de Execução do Windows que é contado automaticamente como referência". Mais precisamente, uma referência de rastreamento declara que o compilador deve inserir código para gerenciar a contagem de referência do objeto automaticamente. O código exclui o objeto se a contagem de referência for zero.
Declaração de tipo dinâmico new ref new Aloca um objeto do Tempo de Execução do Windows e retorna um identificador para esse objeto.
Gerenciamento do tempo de vida do objeto delete identifier

delete[] identifier
(Invoca o destruidor.) O tempo de vida é determinado pela contagem de referências. Uma chamada para delete invocar o destruidor, mas por si só não libera memória.
Declaração de matriz T identifier[]

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

-or-

WriteOnlyArray<T^> identifier( size )
Declara uma matriz unidimensional modificável ou somente gravação do tipo T^. A matriz em si também é um objeto de referência contada que deve ser declarado usando o modificador handle-to-object.

(As declarações de matriz usam uma classe de cabeçalho de modelo que está no Platform namespace.)
Declaração de classe class identifier {}

struct identifier {}
ref class identifier {}

ref struct identifier {}
Declara uma classe de tempo de execução que tem acessibilidade padrão private .

Declara uma classe de tempo de execução que tem acessibilidade padrão public .
Declaração de estrutura struct identifier {}

(ou seja, uma estrutura de dados antiga simples (POD))
value class identifier {}

value struct identifier {}
Declara uma struct POD que tem acessibilidade padrão private .

A value class pode ser representado em metadados do Windows, mas um C++ class padrão não pode ser.

Declara uma struct POD que tem acessibilidade padrão public .

A value struct pode ser representado em metadados do Windows, mas um C++ struct 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 padrão private .

Declara uma interface que tem acessibilidade padrão public .
Delegado std::function public delegate return-type delegate-type-identifier ( [ parâmetros ]); Declara um objeto que pode ser invocado 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 event objeto, 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.

Adicionar um manipulador de eventos retorna um token de evento (token-identifier). Se você pretende remover explicitamente o manipulador de eventos, você deve 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 que você salvou 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 do 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 de interface parametrizada.

Declara um delegado parametrizado.
Tipos de valor anulável std::optional<T> Platform::IBox <T> Permite que variáveis de tipos escalares e value structs tenham um valor de nullptr.

Ver também

Referência da linguagem C++/CX