Partager via


Procédure pas à pas : utilisation des fonctionnalités /clr:pure

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 (C++/CLI).

Composants requis

ScribbleDotNET, exemple : extension du programme Scribble avec les fonctionnalités CLR

Pour générer/exécuter cet exemple d'application

  1. Téléchargez l'exemple ScribbleDotNET.

  2. Ouvrez le fichier solution Scribble.sln dans l'environnement de développement Visual Studio.

  3. Générez la solution en utilisant la configuration "CLR-Pure Debug" ou "CLR-Pure Release".

  4. Ouvrez le composant StringDialog.h en mode Design.

  5. 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

Autres ressources

Procédures pas à pas de Visual C++ 2010