Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert 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 chargement de bibliothèque 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 chargement non managée, AssemblyLoadContextactiveest celui qui contient l’assembly définissant lePInvoke.Pour le
activeAssemblyLoadContext, tentez de localiser l'assemblage par ordre de priorité :Vérification de son cache.
Invocation 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.