Chargement du Common Language Runtime dans un processus
Avant de pouvoir exécuter un code managé, l'hôte doit charger et initialiser le Common Language Runtime (CLR). Tous les hôtes commencent par un stub non managé, car le runtime ne s'exécute pas encore dans le processus. Le .NET Framework propose un ensemble d'interfaces API non managées appelé interfaces API d'hébergement que l'hôte peut utiliser pour lancer le runtime. Pour plus d'informations, consultez Interfaces d'hébergement.
Remarque |
---|
Les méthodes d'hébergement fournies par les versions du .NET Framework antérieures au .NET Framework version 4 sont déconseillées.Nous vous recommandons d'utiliser les interfaces introduites par le .NET Framework 4 et décrites dans cette rubrique. |
Un hôte peut charger le CLR dans un processus à l'aide de l'une des procédures suivantes :
Appelez la fonction CLRCreateInstance pour obtenir une interface ICLRMetaHost ou ICLRMetaHostPolicy. La fonction CLRCreateInstance remplace toutes les fonctions CorBindTo* répertoriées dans la section Fonctions statiques globales de l'hébergement .NET Framework 1.1 et 2.0.
Appelez la méthodeICLRMetaHost::EnumerateInstalledRuntimes, ICLRMetaHost::GetRuntime ou ICLRMetaHostPolicy::GetRequestedRuntime pour obtenir un pointeur ICLRRuntimeInfo valide.
Appelez la méthode ICLRRuntimeInfo::GetInterface. Spécifiez CLSID_CLRRuntimeHost pour le paramètre rclsid et IID_ICLRRuntimeHost pour le paramètre riid.
Le prototype de toutes ces interfaces se trouve dans le fichier Metahost.h, situé dans le répertoire Include du Kit de développement logiciel (SDK) Windows. Les hôtes peuvent utiliser à la fois les interfaces ICLRRuntimeInfo et ICLRRuntimeHost pour contrôler la version du runtime à charger, ainsi que le comportement de fonctions de base telles que le garbage collection et le chargement d'assembly.
Utilisez l'interface ICLRRuntimeHost pour effectuer les actions suivantes :
Démarrer le runtime en appelant la méthode ICLRRuntimeHost::Start.
Exécuter le code managé.
Obtenir un pointeur vers l'interface ICLRControl (qui permet d'accéder aux gestionnaires implémentés par le Common Language Runtime) et enregistrer un objet de contrôle hôte qui implémente l'interface IHostControl. Le Common Language Runtime appelle l'interface IHostControl pour déterminer quels gestionnaires l'hôte implémente.
Voir aussi
Référence
Concepts
Transition vers un code d'hébergement managé
Vue d'ensemble de l'hébergement