Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les bibliothèques non managées sont chargées à l’aide d’un algorithme impliquant différentes étapes.
L’algorithme suivant décrit comment les bibliothèques natives sont chargées via PInvoke.
Algorithme de bibliothèque de chargement PInvoke
PInvoke utilise l’algorithme suivant lors de la tentative de chargement d’un assembly non managé :
Déterminez le
activeAssemblyLoadContext. Pour une bibliothèque de charge non managée, AssemblyLoadContextactivedéfinit avec l’assembly lePInvoke.Pour le
activeAssemblyLoadContext, essayez de trouver l’assembly dans l’ordre de priorité :Vérification de son cache.
Appel du délégué actuel System.Runtime.InteropServices.DllImportResolver défini par la fonction NativeLibrary.SetDllImportResolver(Assembly, DllImportResolver).
Appel de la fonction AssemblyLoadContext.LoadUnmanagedDll sur AssemblyLoadContext
active.Vérification du cache de l’instance AppDomain et exécution de la logique de détection de bibliothèque non managée (native).
Déclenchement de l’événement AssemblyLoadContext.ResolvingUnmanagedDll pour
activeAssemblyLoadContext.