Partager via


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

Pour charger le runtime dans un processus, un hôte appelle la fonction CorBindToRuntimeEx. Le prototype de CorBindToRuntimeEx se trouve dans Mscoree.h dans le répertoire Include du Kit de développement .NET Framework SDK. L'hôte utilise CorBindToRuntimeEx pour contrôler la version du runtime à charger et le comportement des fonctions de base, telles que le garbage collection et le chargement de l'assembly. Un hôte peut affecter les valeurs répertoriées dans le tableau suivant.

Valeur Description

Garbage collection simultané

Spécifie si le garbage collection s'effectue sur les threads d'arrière-plan ou sur les threads qui exécutent le code utilisateur.

Optimisation du chargeur

Contrôle si les assemblys sont chargés comme étant indépendants du domaine. Le chargement des assemblys de manière indépendante du domaine permet aux structures de données du code assembleur traité par le compilateur JIT et du runtime en lecture seule d'être partagées par tous les domaines d'application d'un processus.

Pour plus d'informations, consultez Domaines d'application et assemblys.

Serveur ou station de travail

Spécifie le chargement de la build de la station de travail ("wks") ou de la build du serveur ("svr") du runtime.

Version

Spécifie la version du runtime à charger dans le processus. Pour charger la version 1.0, utilisez "v1.0.3705". Pour charger la version 1,1, utilisez "v1.1.4322". Pour charger la version 2.0, utilisez "v2.0.50727". Un processus ne peut charger qu'une seule version du runtime.

Pour plus d'informations, consultez Exécution côte à côte.

CorBindToRuntimeEx utilise trois paramètres supplémentaires : le CLSID de l'objet qui contient l'interface ICLRRuntimeHost (CLSID_CLRRuntimeHost), l'IID de l'interface (IID_ICLRRuntimeHost) et un paramètre [out] qui reçoit le pointeur ICLRRuntimeHost.

Notes

Pour les versions 1.0 et 1.1, utilisez CLSID_CorRuntimeHost et IID_ICorRuntimeHost pour obtenir l'interface ICorRuntimeHost.

Utilisez ICLRRuntimeHost pour lancer le runtime, exécuter le code managé, obtenir un pointeur vers l'interface ICLRControl permettant d'accéder aux gestionnaires et implémentée par le Common Language Runtime, et enregistrer un objet de contrôle hôte implémentant l'interface IHostControl. Le Common Language Runtime appelle IHostControl pour déterminer les gestionnaires implémentés par l'hôte.

Voir aussi

Référence

AppDomainSetup Class
CorBindToRuntimeEx
ICLRRuntimeHost
ICLRControl

Concepts

Transition vers un code d'hébergement managé

Autres ressources

Hébergement du Common Language Runtime