Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os processos chamam LoadLibrary ou LoadLibraryEx para vincular explicitamente a uma DLL. (Os aplicativos MFC usam AfxLoadLibrary ou AfxLoadLibraryEx.) Se a função for bem-sucedida, ela mapeia a DLL especificada no espaço de endereço do processo de chamada e retorna um identificador para a DLL. O identificador é necessário em outras funções usadas para vinculação explícita — por exemplo, GetProcAddress e FreeLibrary. Para obter mais informações, consulte Vinculação explícita.
LoadLibrary tenta localizar a DLL usando a mesma sequência de pesquisa usada para vinculação implícita.
LoadLibraryEx Dá-lhe mais controlo sobre a ordem dos caminhos de pesquisa. Para obter mais informações, consulte Ordem de pesquisa da biblioteca de vínculo dinâmico. Se o sistema não conseguir encontrar a DLL ou se a função de ponto de entrada retornar FALSE, LoadLibrary retornará NULL. Se a chamada para LoadLibrary especificar um módulo DLL que já está mapeado no espaço de endereço do processo de chamada, a função retorna um identificador da DLL e incrementa a contagem de referência do módulo.
Se a DLL tiver uma função de ponto de entrada, o sistema operacional chamará a função no contexto do thread que chamou LoadLibrary ou LoadLibraryEx. A função de ponto de entrada não é chamada se a DLL já estiver anexada ao processo. Isso acontece quando uma chamada anterior para LoadLibrary ou LoadLibraryEx para a DLL não teve uma chamada correspondente para a FreeLibrary função.
Para aplicativos MFC que carregam DLLs de extensão MFC, recomendamos que você use AfxLoadLibrary ou AfxLoadLibraryEx em vez de LoadLibrary ou LoadLibraryEx. As funções MFC manipulam a sincronização de thread antes de carregar a DLL explicitamente. As interfaces (protótipos de função) para AfxLoadLibrary e AfxLoadLibraryEx são as mesmas que LoadLibrary e LoadLibraryEx.
Se o Windows não conseguir carregar a DLL, o processo pode tentar recuperar do erro. Por exemplo, ele pode notificar o usuário do erro e, em seguida, pedir outro caminho para a DLL.
Importante
Certifique-se de especificar o caminho completo de todas as DLLs. O diretório atual pode ser pesquisado primeiro quando os arquivos são carregados pelo LoadLibrary. Se você não qualificar totalmente o caminho do arquivo, um arquivo diferente do pretendido poderá ser carregado. Ao criar uma DLL, use a opção de vinculador /DEPENDENTLOADFLAG para especificar uma ordem de pesquisa para dependências de DLL vinculadas estaticamente. Nas suas DLLs, utilize os caminhos completos para as dependências explicitamente carregadas e utilize os parâmetros de chamada LoadLibraryEx ou AfxLoadLibraryEx para especificar a ordem de pesquisa do módulo. Para obter mais informações, consulte Segurança da bibliotecaDynamic-Link e Ordem de pesquisa da biblioteca de links dinâmicos.