Share via


Tutorial: Utilizar las características de /clr:pure

Este tutorial muestra el uso de la reflexión en una aplicación de MSIL puro. La solución Scribble de Windows Forms se ha ampliado para incluir algunas clases nativas que contienen datos estáticos, así como para exponer controles de formularios Windows Forms que se deben poder utilizar desde el Diseñador de Windows Forms. Si se genera el ejemplo con la opción /clr:pure, se tratan los posibles problemas con este escenario. Vea Cómo: Migrar a /clr:pure (C++/CLI) para obtener más información.

Requisitos previos

Ejemplo ScribbleDotNET: ampliar Scribble con características de CLR

Para generar y ejecutar esta aplicación de ejemplo

  1. Descargue el ejemplo ScribbleDotNET.

  2. Abra el archivo de solución, Scribble.sln, en el entorno de desarrollo de Visual Studio.

  3. Compile la solución mediante las configuraciones "CLR-Pure Debug" o "CLR-Pure Release".

  4. Abra el componente StringDialog.h en modo de diseño

  5. La ventana de diseño que aparece contendrá una instancia de "ScribbleCustomControl".

Tecnologías

  • Nueva sintaxis de C++ para .NET

  • Reflexión

  • marshal_as<T> para tener acceso a tipos nativos desde clases administradas.

En este ejemplo se crea una clase no administrada que se envuelve en una clase de control administrada. Cuando se compila en una aplicación de MSIL puro, el Diseñador de Windows Forms de Visual Studio puede reflejarse en el archivo EXE resultante y cargar el control administrado para uso en este diseñador. Este comportamiento sólo es posible cuando la finalidad de la configuración actual es crear una aplicación de MSIL puro, y no en un modo no administrado ni mixto.

Dentro del control, creamos una instancia de una clase nativa. La información que necesitamos es una cadena nativa. Utilizamos marshal_as<T> para convertir los datos en un tipo de datos administrado que podemos utilizar en una aplicación compatible con CLR. Para obtener más información sobre la biblioteca de cálculo de referencias, vea Overview of Marshaling in C++.

Vea también

Conceptos

Language Features for Targeting the CLR

Otros recursos

Tutoriales de Visual C++ 2010