Procédure pas à pas : utilisation des fonctionnalités /clr:pure
Mise à jour : novembre 2007
Cette procédure pas à pas montre l'utilisation de la réflexion dans une application MSIL pure. La solution Scribble Windows Forms est étendue pour inclure des classes natives qui contiennent des données statiques et pour exposer des contrôles Windows Forms qui doivent être utilisables à partir du Concepteur Windows Forms. La génération de l'exemple avec l'option /clr:pure traite des problèmes potentiels liés à ce scénario. Pour plus d'informations, consultez Comment : effectuer une migration vers /clr:pure.
Composants requis
ScribbleDotNET, exemple : extension du programme Scribble avec les fonctionnalités CLR
Pour générer/exécuter cet exemple d'application
Téléchargez l'exemple ScribbleDotNET.
Ouvrez le fichier solution Scribble.sln dans l'environnement de développement Visual Studio.
Générez la solution en utilisant la configuration "CLR-Pure Debug" ou "CLR-Pure Release".
Ouvrez le composant StringDialog.h en mode Design.
La fenêtre de conception qui s'affiche contient une instance de "ScribbleCustomControl".
Technologies
Nouvelle syntaxe C++ pour le .NET
Réflexion
marshal_as<T> pour l'accès aux types natifs à partir de classes managées
Cet exemple crée une classe non managée et l'encapsule dans une classe de contrôle managée. Lors d'une compilation en une application MSIL pure, le Concepteur Windows Forms Visual Studio peut effectuer une réflexion sur le fichier EXE résultant et charger le contrôle managé pour une utilisation dans le Concepteur Windows Forms. Ce comportement est possible uniquement lorsque la configuration actuelle consiste à créer une application MSIL pure, et non dans un mode non managé ou mixte.
Dans le contrôle, nous instancions une instance de classe native. L'information dont nous avons besoin est une chaîne native. Nous utilisons marshal_as < T > pour convertir les données dans un type de données managées que nous pouvons utiliser dans une application CLR. Pour plus d'informations sur la bibliothèque de marshaling, consultez Overview of Marshaling in C++.
Voir aussi
Concepts
Language Features for Targeting the CLR