Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As bibliotecas não gerenciadas são localizadas e carregadas com um algoritmo que envolve vários estágios.
O algoritmo a seguir descreve como as bibliotecas nativas são carregadas através do PInvoke.
PInvoke Carregar algoritmo de biblioteca
PInvoke usa o seguinte algoritmo ao tentar carregar um assembly não gerenciado:
Determine o
activeAssemblyLoadContext. Para uma biblioteca de carga não gerenciada, oactiveAssemblyLoadContext é aquele com o assembly que define oPInvoke.Para o
activeAssemblyLoadContext, tente encontrar a montagem em ordem de prioridade por:Verificando a cache.
Invocando o delegado atual System.Runtime.InteropServices.DllImportResolver definido pela função NativeLibrary.SetDllImportResolver(Assembly, DllImportResolver).
Chamada da função AssemblyLoadContext.LoadUnmanagedDll no
activeAssemblyLoadContext.Verificar o cache da AppDomain instância e executar a lógica de sondagem da biblioteca não gerenciada (nativa).
Levantando o AssemblyLoadContext.ResolvingUnmanagedDll evento para o
activeAssemblyLoadContext.