Tutorial: Utilizar las características de /clr:pure
Actualización: noviembre 2007
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 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
Descargue el ejemplo ScribbleDotNET.
Abra el archivo de la solución, Scribble.sln, en el entorno de desarrollo de Visual Studio.
Genere la solución mediante las configuraciones "CLR-Pure Debug" o "CLR-Pure Release".
Abra el componente StringDialog.h en modo de diseño
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