Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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). | |
shortunsigned short |
int16uint16 |
Um inteiro assinado de 16 bits. Um inteiro não assinado de 16 bits. |
|
intunsigned int |
intuint32 |
Um inteiro assinado de 32 bits. Um inteiro não assinado de 32 bits. |
|
long long -ou- __int64unsigned long long |
int64uint64 |
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::wstringL"..." |
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 identifierdelete[] 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. |