Compartir a través de


Extensiones de componentes para plataformas de tiempo de ejecución

Visual C++ proporciona extensiones de lenguaje para ayudarle a programar con plataformas de runtime.Mediante Extensiones de componentes de Visual C++ (C++/CX), puede programar aplicaciones y componentes de Tienda Windows que el código nativo.Aunque puede crear aplicaciones de Tienda Windows programando directamente en las interfaces COM de Windows en tiempo de ejecución , mediante C++/CX, puede ejecutar los constructores, excepciones, y el otro C++ moderno que programa idioms.Para habilitar C++ en un entorno de ejecución administrado en la plataforma.NET, puede utilizar C++/CLI.

Dos runtimes, un conjunto de extensiones

C++/CX es un subconjunto de C++/CLI.Para las extensiones que son comunes a C++/CX y a C++/CLI, la semántica depende de si usa como destino Common Language Runtime (CLR) o Windows en tiempo de ejecución.Para compilar la aplicación para ejecutarse en Windows en tiempo de ejecución, especifique la opción del compilador /ZW .Para compilarlo para ejecutarse en CLR, especifique la opción del compilador /clr .Estos modificadores se establecen automáticamente cuando se usa Visual Studio para crear un proyecto.

Para obtener más información sobre cómo crear aplicaciones de Tienda Windows en C++, vea Roadmap for Windows Store apps using C++.

C++/CLI extiende el estándar de ISO/ANSI C++, y se define en la norma ECMA C++/CLI .Para obtener más información, vea .NET que programa en Visual C++.

Palabras clave de tipo de datos

Las palabras clave aggregatede inclusión de las extensiones de lenguaje, que son palabras clave que consta de dos tokenes separadas por un espacio en blanco.Los tokenes podrían tener uno que significaba cuando se utilizan por separado, y otro significado cuando se usan juntos.Por ejemplo, la palabra “referencia” es un identificador normal, y la palabra “clase” es una palabra clave que declara una clase nativa.Pero cuando estas palabras se combinan para formar ref class, la palabra clave global resultante declara una entidad que se conoce como clase de runtime.

Las extensiones también incluyen palabras clave contextuales .Una palabra clave se trata como contextual en función del tipo de fragmento que la contenga, y su posición en ese fragmento.Por ejemplo, el token “propiedad” puede ser un identificador, o puede declarar una clase especial de miembro de clase público.

La tabla siguiente se enumeran las palabras clave en la extensión del lenguaje C++.

Palabra clave

Contextual

Objetivo

Referencia

ref class

ref struct

No

Declara una clase.

Clases y structs (Extensiones de componentes de C++)

value class

value struct

No

Declara una clase de valor.

Clases y structs (Extensiones de componentes de C++)

interface class

interface struct

No

Declara una interfaz.

interface class (Extensiones de componentes de C++)

enum class

enum struct

No

Declara una enumeración.

enum class (Extensiones de componentes de C++)

property

Declara una propiedad.

property (Extensiones de componentes de C++)

delegate

Declara un delegado.

delegate (Extensiones de componentes de C++)

event

Declara un evento.

event (Extensiones de componentes de C++)

Especificadores de reemplazo

Puede utilizar las palabras clave siguientes para modificar el comportamiento de invalidación de derivación.Aunque la palabra clave de new no es una extensión de C++, se muestra aquí porque se puede utilizar en un contexto adicional.Algunos especificadores también son válidas para la programación nativa.Para obtener más información, vea Cómo: Declare los especificadores de reemplazo en compila nativas.

Palabra clave

Contextual

Objetivo

Referencia

abstract

Indica que las funciones o clases son abstractas.

abstract (Extensiones de componentes de C++)

new

No

Indica que una función no es un reemplazo de una versión de la clase base.

new (nueva ranura en vtable) (Extensiones de componentes de C++)

override

Indica que un método debe ser un reemplazo de una versión de la clase base.

override (Extensiones de componentes de C++)

sealed

Evita que las clases se utilizarán como clases base.

sealed (Extensiones de componentes de C++)

Palabras clave para Genéricos

Las palabras clave siguientes se han agregado para admitir tipos genéricos.Para obtener más información, vea Genéricos (Extensiones de componentes de C++).

Palabra clave

Contextual

Objetivo

generic

No

Declara un tipo genérico.

where

Especifica las restricciones que se aplican a un parámetro de tipo genérico.

Palabras clave diferentes

Las palabras clave siguientes se han agregado a las extensiones de C++.

Palabra clave

Contextual

Objetivo

Referencia

finally

Indica el comportamiento predeterminado de los controles de excepciones.

Control de excepciones (Extensiones de componentes de C++)

for each, in

No

Se muestran los elementos de una colección.

para cada, en

gcnew

No

Asigna tipos en la pila basura- obtenida.En lugar de new y de delete.

ref new, gcnew (Extensiones de componentes de C++)

ref new

Asigna un tipo de Windows en tiempo de ejecución .En lugar de new y de delete.

ref new, gcnew (Extensiones de componentes de C++)

initonly

Indica que un miembro sólo se puede inicializar en la declaración o en un constructor estático.

initonly

literal

Crea una variable literal.

literal (Extensiones de componentes de C++)

nullptr

No

Indica que un identificador o un puntero no señala un objeto.

nullptr (Extensiones de componentes de C++)

Construcciones de plantilla

Las construcciones de lenguaje siguientes se implementan como plantillas, en lugar de como palabras clave.Si especifica la opción del compilador /ZW , se definen en el espacio de nombres lang .Si especifica la opción del compilador /clr , se definen en el espacio de nombres cli .

Palabra clave

Objetivo

Referencia

array

Declara una matriz.

Matrices (Extensiones de componentes de C++)

interior_ptr

(CLR solo) puntos a los datos de un tipo de referencia.

interior_ptr (C++/CLI)

pin_ptr

(CLR solo) puntos a los tipos de referencia de CLR para suprimir temporalmente el sistema de la recolección de elementos no utilizados.

pin_ptr (C++/CLI)

safe_cast

Determina y ejecuta el método óptimo del marco para un tipo de runtime.

safe_cast (Extensiones de componentes de C++)

typeid

(CLR solo) recupera un objeto de System.Type que describe el tipo o el objeto especificado.

typeid (Extensiones de componentes de C++)

Declarantes

Los declarantes siguientes de tipo indican al runtime automáticamente para administrar la duración y eliminación de objetos asignados.

Operador

Objetivo

Referencia

^

Declara un identificador a un objeto; es decir, un puntero a Windows en tiempo de ejecución o un objeto CLR que se elimina automáticamente cuando ya no utilizable.

Operador de identificador de objeto (^) (Extensiones de componentes de C++)

%

Declara una referencia de seguimiento; es decir, una referencia a Windows en tiempo de ejecución o un objeto CLR que se elimina automáticamente cuando ya no utilizable.

Operador de referencia de seguimiento (Extensiones de componentes de C++)

Construcciones adicionales y temas relacionados

Esta sección enumera construcciones de programación adicionales, y temas que pertenecen a CLR.

Tema

Descripción

__identifier (C++/CLI)

(Windows en tiempo de ejecución y CLR) habilita el uso de palabras clave como identificadores.

Listas de argumentos de variables (...) (C++/CLI)

(Windows en tiempo de ejecución y CLR) permite a una función tome un número variable de argumentos.

Equivalentes de .NET Framework para tipos nativos de C++ (C++/CLI)

Enumera los tipos de CLR que se utilizan en lugar de los tipos enteros de C++.

Modificador deappdomain__declspec

El modificador de__declspec que asigna que por mandato static y las variables globales existen por appdomain.

Conversiones de estilo C con /clr (C++/CLI)

Describe cómo se interpretan las conversiones de tipo C.

Convención de llamada de__clrcall

Indica la convención de llamada de CLR- bajo.

__cplusplus_cli

Macros predefinidas

Atributos personalizados (C++)

Describe cómo definir sus propios atributos CLR.

Control de excepciones (Extensiones de componentes de C++)

Proporciona información general sobre el control de excepciones.

Invalidaciones explícitas (Extensiones de componentes de C++)

Muestra cómo las funciones miembro pueden reemplazar los miembros arbitrarios.

Ensamblados de confianza (C++)

Explica cómo un cliente que puede tener acceso a todos los escribe en un componente de ensamblado.

Conversión boxing (Extensiones de componentes de C++)

Muestra las condiciones en las que combinación a los tipos de valores.

Compatibilidad de compilador para type traits (Extensiones de componentes de C++)

Explica cómo detectar características de tipos en tiempo de compilación.

Pragmas demanaged, unmanaged

Muestra cómo las funciones administradas y no administradas pueden coexistir en el mismo módulo.

Modificador deprocess__declspec

El modificador de__declspec que asigna que por mandato static y las variables globales existen por proceso.

Reflexión (C++/CLI)

Muestra la versión de CLR de la información de tipo en tiempo de ejecución.

Cadena (Extensiones de componentes de C++)

Describe la conversión del compilador de literales de cadena a String.

Reenvío de tipos (C++/CLI)

Habilita el movimiento de un tipo en un ensamblado de envío a otro ensamblado para no tener que volver a compilar el código de cliente.

Atributos definidos por el usuario (Extensiones de componentes de C++)

Muestra atributos definidos por el usuario.

directiva #using (C++)

Importe los ensamblados externos.

Documentación XML (Visual C++)

Explains XML- según la documentación del código mediante /doc (Procesar comentarios de documentación) (C/C++)

Vea también

Otros recursos

.NET que programa en Visual C++

Interoperabilidad nativa y de .NET