LoadLibrary e AfxLoadLibrary
Os processos em LoadLibraryAfxLoadLibrary(ou) para vincular explicitamente para uma DLL.Se a função é bem-sucedido, mapeia o DLL especificado no espaço de endereço do processo de chamada e retorna um identificador para a DLL que pode ser usado com outras funções em vincular- explícito para o exemplo, o GetProcAddress e o FreeLibrary.
tentativas deLoadLibrary de localizar o DLL usando a mesma sequência de pesquisa que é usada para vincular implícito.Se o sistema não pode localizar o DLL ou se a função de ponto de entrada retorna FALSO, os retornos de LoadLibrary ANULAM.Se a chamada a LoadLibrary especifica um módulo de DLL que é mapeado já no espaço de endereço do processo de chamada, a função retorna uma alça de DLL e incrementa contagem de referência do módulo.
Se a DLL tem uma função de ponto de entrada, o sistema operacional chama a função no contexto da thread que chamou LoadLibrary.A função de ponto de entrada não é chamado se a DLL é anexado ao processo já devido a uma chamada anterior a LoadLibrary que não tem correspondente chamada para a função de FreeLibrary .
Para aplicativos MFC que carregam DLL de extensão, recomendamos que você usa AfxLoadLibrary em vez de LoadLibrary.sincronização de threads de manipuladores deAfxLoadLibrary antes de chamar LoadLibrary.A interface (protótipo de função) a AfxLoadLibrary é a mesma que LoadLibrary.
Se o Windows não pode carregar a DLL, o processo pode tentar recuperar de erro.Por exemplo, o processo pode notificar o usuário de erro e perguntar ao usuário especifica outro caminho para a DLL.
Observação de segurança |
---|
Se o código é executado no Windows NT, Windows 2000, ou Windows XP (antes de SP1), certifique-se de que especifique o caminho completo de quaisquer dlls.Nesses sistemas operacionais, o diretório atual é procurado primeiro enquanto os arquivos são carregados.Se você não está qualificada o caminho do arquivo, um arquivo que não é destinada pode ser carregado. |