LoadLibrary e AfxLoadLibrary
Processa a chamada LoadLibrary (ou AfxLoadLibrary) para vincular-se explicitamente a DLL. Se bem-sucedida, a função mapeia a DLL especificada no espaço de endereço do processo de chamada e retorna um identificador para a DLL que pode ser usada com outras funções em explícita de vinculação, por exemplo, GetProcAddresse FreeLibrary.
LoadLibrarytenta localizar a DLL usando a mesma seqüência de pesquisa usada para vinculação implícita. Se o sistema não consegue localizar a DLL ou a função de ponto de entrada retorna FALSE, LoadLibrary retorna NULL. Se a chamada para LoadLibrary Especifica um módulo DLL já está mapeado no espaço de endereço do processo de chamada, a função retorna um identificador da DLL e incrementos a 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 do thread que chamou LoadLibrary. A função de ponto de entrada não é chamada se a DLL já está anexada ao processo devido a uma chamada anterior de LoadLibrary com nenhuma chamada correspondente para o FreeLibrary função.
Para aplicativos de MFC carregar DLLs de extensão, recomendamos que você use AfxLoadLibrary em vez de LoadLibrary. AfxLoadLibraryalças de sincronização de segmento antes de chamar LoadLibrary. A interface (protótipo de função) para AfxLoadLibrary é o mesmo que LoadLibrary.
Se o Windows não pode carregar a DLL, o processo pode tentar recuperar do erro. Por exemplo, o processo pode notificar o usuário sobre o erro e pedir ao usuário que especifique outro caminho para a DLL.
Observação sobre segurança |
---|
Se o código é executado sob Windows NT 4, Windows 2000 ou Windows XP (anterior ao SP1), certifique-se de especificar o nome de caminho completo de quaisquer DLLs. Nesses sistemas operacionais, o diretório atual é pesquisado primeiro quando os arquivos são carregados. Se você não se qualificam o caminho do arquivo, um arquivo pode ser que não era carregado. |