Compartilhar via


Extensões de componente para plataformas de tempo de execução

Visual C++ fornece extensões de linguagem para ajudá-lo a programar em plataformas de tempo de execução.Usando Extensões de componentes Visual C++ (C++/CX), você pode programar os apps e componentes de Windows Store que compilam para código nativo.Embora você possa criar apps de Windows Store programando diretamente nas interfaces de Tempo de Execução do Windows COM, usando C++/CX, você pode trabalhar com construtores, exceções, e outros modernos linguagem de programação C++.Para ativar a programação C++ em um ambiente de execução gerenciado na plataforma .NET, você pode usar C++/CLI.

Dois tempo de execução, um conjunto de extensões

C++/CX é um subconjunto de C++/CLI.Para as extensões que são comuns a C++/CX e a C++/CLI, a semântica depende se você está buscando o common language runtime (CLR) ou Tempo de Execução do Windowslanguage runtime.Para compilar seu app para executar em Tempo de Execução do Windows, especifique a opção de compilador /ZW .Para compilá-la para executar no CLR, especifique a opção de compilador /clr .Esses switches são definidas automaticamente quando você usa o Visual Studio para criar um projeto.

Para obter mais informações sobre como criar apps de Windows Store em C++, consulte Roadmap for Windows Store apps using C++.

C++/CLI estende o padrão de ISO/ANSI C++, e o é definido no padrão de Ecma C++/CLI .Para obter mais informações, consulte .NET programação no Visual C++.

Palavra-chave de tipo de dados

As extensões de linguagem incluem as palavras-chave agregados, que são palavras-chave que consiste de dois tokens separados por um espaço em branco.Os tokens podem ter um significa que quando eles são usados separada, e outro sinalizado quando são usados juntos.Por exemplo, a palavra “referência” é um identificador comum, e a palavra “classe” são uma palavra-chave que declara uma classe nativo.Mas quando essas palavras são combinadas para formar ref class, a palavra-chave agregado resultante declara uma entidade que é conhecida como uma classe de tempo de execução.

As extensões também incluem palavra-chave contextuais .Uma palavra-chave é tratado como contextual dependendo do tipo da instrução que o contém, e do posicionamento na instrução.Por exemplo, a propriedade “token” pode ser um identificador, ou pode declarar um tipo especial de membro público da classe.

A tabela a seguir lista palavra-chave na extensão de linguagem de C++.

Keyword

Contextual

Finalidade

Referência

ref class

ref struct

Não

Declare uma classe.

Classes e Estruturas (Extensões de Componentes C++)

value class

value struct

Não

Declare uma classe de valor.

Classes e Estruturas (Extensões de Componentes C++)

interface class

interface struct

Não

Declara uma interface.

classe de interface (Extensões de Componentes C++)

enum class

enum struct

Não

Declara uma enumeração.

classe enum (Extensões de Componentes C++)

property

Sim

Declara uma propriedade.

propriedade (Extensões de Componentes C++)

delegate

Sim

Declara um delegado.

delegado (Extensões de Componentes C++)

event

Sim

Declara um evento.

evento (Extensões de Componentes C++)

Especificadores de substituição

Você pode usar os seguintes palavra-chave para qualificar o comportamento de substituição para a derivação.Embora a palavra-chave de new não é uma extensão de C++, é listado aqui porque pode ser usado em um contexto extra.Alguns especificadores também são válidos para programação nativo.Para obter mais informações, consulte Como: declarar especificadores de substituição em compilações nativos.

Keyword

Contextual

Finalidade

Referência

abstract

Sim

Indica que as funções ou classes são abstratas.

abstrata (Extensões de Componentes C++)

new

Não

Indica que uma função não é uma substituição de uma versão da classe base.

novo (novo slot em vtable) (Extensões de Componentes C++)

override

Sim

Indica que um método deve ser uma substituição de uma versão da classe base.

substituir (Extensões de Componentes C++)

sealed

Sim

Impede que classes sejam usadas como classes base.

autenticada (Extensões de Componentes C++)

Palavra-chave para os genéricos

As seguintes palavras chave foram adicionados para suportar tipos genéricos.Para obter mais informações, consulte Genéricos (Extensões de Componentes C++).

Keyword

Contextual

Finalidade

generic

Não

Declara um tipo genérico.

where

Sim

Especifica as restrições que são aplicadas a um parâmetro de tipo genérico.

Palavra-chave variados

As seguintes palavras chave foram adicionados às extensões C++.

Keyword

Contextual

Finalidade

Referência

finally

Sim

Indica o comportamento padrão de manipulação de exceção.

Tratamento de Exceção (Extensões de Componentes C++)

for each, in

Não

Enumera os elementos de uma coleção.

para cada um, no

gcnew

Não

Atribui tipos no heap lixo- coletado.Use em vez de new e de delete.

ref new, gcnew (Extensões de Componentes C++)

ref new

Sim

Atribui um tipo de Tempo de Execução do Windows .Use em vez de new e de delete.

ref new, gcnew (Extensões de Componentes C++)

initonly

Sim

Indica que um membro só pode ser inicializado na declaração ou em um construtor estático.

InitOnly

literal

Sim

Cria uma variável literal.

literal (Extensões de Componentes C++)

nullptr

Não

Indica que um identificador ou um ponteiro não apontam em um objeto.

nullptr (Extensões de Componentes C++)

Compilações de modelo

As seguintes compilações da linguagem são implementadas como modelos, em vez de como palavra-chave.Se você especificar a opção de compilador /ZW , são definidos no namespace de lang .Se você especificar a opção de compilador /clr , são definidos no namespace de cli .

Keyword

Finalidade

Referência

array

Declara uma matriz.

Matrizes (Extensões de Componentes C++)

interior_ptr

(CLR) somente os pontos a dados em um tipo de referência.

interior_ptr (C++/CLI)

pin_ptr

(CLR) somente aponta para tipos de referência CLR para suprimir temporariamente o sistema de coleta de lixo.

pin_ptr (C++/CLI)

safe_cast

Determina e executa o melhor método de conversão para um tipo de tempo de execução.

safe_cast (Extensões de Componentes C++)

typeid

(CLR) somente recupera um objeto de System.Type que descreve o tipo ou objeto especificado.

typeid (Extensões de Componentes C++)

Declaradores

Os seguintes declarators do tipo instruem o tempo de execução para gerenciar automaticamente o tempo de vida e exclusão de objetos atribuídos.

Operator

Finalidade

Referência

^

Declara um identificador para um objeto; isto é, um ponteiro para Tempo de Execução do Windows objeto ou CLR que é excluído automaticamente quando não está mais útil.

Operador Handle to Object (^) (Extensões de Componentes C++)

%

Declara uma referência de controle; ou seja, uma referência a Tempo de Execução do Windows objeto ou CLR que é excluída automaticamente quando não está mais útil.

Operador de Referência de Acompanhamento (Extensões de Componentes C++)

Compilações adicionais e tópicos relacionados

Esta seção lista construções de programação adicionais, e tópicos que pertencem ao CLR.

Tópico

Descrição

__identifier (C++/CLI)

(Tempo de Execução do Windows e CLR) permite o uso das palavras-chave como identificadores.

Listas de Argumentos Variáveis (...) (C++/CLI)

(Tempo de Execução do Windows e CLR) permite uma função para ser um número variável de argumentos.

.NET Framework equivalentes para tipos C++ nativo (C + + / CLI)

Lista os tipos de CLR que são usados no lugar dos tipos integrais C++.

Modificador deAppDomain__declspec

o modificador de__declspec que mandato esse estáticos e variáveis globais existe. por appdomain

Conversões de Estilo C-Style com /clr (C++/CLI)

Descreve como conversões ctype de estilo são interpretadas.

__clrcall que chama a convenção

Indica CLR- correspondente a convenção de chamada.

__cplusplus_cli

Macros predefinidas

Atributos personalizados (C++)

Descreve como definir seus próprios atributos CLR.

Tratamento de Exceção (Extensões de Componentes C++)

Fornece uma visão geral de manipulação de exceção.

Substituições Explícitas (Extensões de Componentes C++)

Demonstra como as funções de membro podem substituir membros arbitrários.

Friend Assemblies (C++)

Discute como um cliente que o assembly pode acessar o qualquer tipo em um componente do assembly.

Conversão boxing (Extensões de Componentes C++)

Demonstra as condições em que os tipos de valores são convertidos.

Suporte para Compilador de Traços de Tipo (Extensões de Componentes C++)

Discute como detectar em tempo de compilação características de tipos.

Pragmas degerenciado, não gerenciado

Demonstra como as funções gerenciados e não gerenciados podem coexistir no mesmo módulo.

Modificador deprocesso__declspec

o modificador de__declspec que mandato esse estáticos e variáveis globais existe pelo processo.

Reflexão (C + + / CLI)

Demonstra a versão CLR de informações de tipo em tempo de execução.

Cadeia de caracteres (Extensões de Componentes C++)

Descreve conversão do compilador de literais de cadeia de caracteres a String.

Encaminhamento de tipos (C++/CLI)

Permite que a movimentação de um tipo em um conjunto de enviar para outro conjunto de modo que o código do cliente não tem que ser recompilado.

Atributos Definidos pelo Usuário (Extensões de Componentes C++)

Demonstra atributos definidos pelo usuário.

# usando diretiva (C++)

Importa os módulos (assemblies) externos.

Documentação XML (Visual C++)

Explica com base na documentação de código usando /doc (processo documentação comentários) (C/C++)

Consulte também

Outros recursos

.NET programação no Visual C++

Nativa e.Interoperabilidade.