LoadLibrary
9/8/2008
Essa função mapeia o arquivo DLL especificado para o espaço de endereço da processo de chamada.
Syntax
HINSTANCE LoadLibrary(
LPCTSTR lpLibFileName
);
Parameters
lpLibFileName
[no] Ponteiro para uma seqüência de caracteres NULL-Terminated que nomes de arquivo DLL.O nome especificado é o nome arquivo do módulo e não está relacionado ao nome armazenado no biblioteca módulo propriamente dita, conforme especificado pelo Biblioteca palavra-chave no módulo-arquivo definição (.DEF).
Se o seqüência de caracteres especifica um caminho, mas o arquivo não existe no Diretório especificado, a função falhará.
Ao especificar um caminho, certifique-se de usar barras invertidas (\), não ENC barras (/).
Se o seqüência de caracteres não especificar um caminho, a função usa um padrão estratégia pesquisa para localizar o arquivo. Para obter mais informações, consulte a seção " Comentários ".
Return Value
Um identificador para o módulo indica sucesso. NULL Indica falha. Para informações de erro estendidas get, chamar GetLastError.
Remarks
Para todas as plataformas
LoadLibrary Pode ser usado para fazer o seguinte:
- Mapear um módulo DLL e retornar um identificador que pode ser usado em GetProcAddress para get o endereço de um função de DLL. Você precisará usar FreeLibrary sobre o identificador mais tarde.
- Mapear outros módulos executáveis. De exemplo, a função pode especificar um arquivo .exe para get um identificador que pode ser usada em FindResource ou LoadResource.
Não uso LoadLibrary Para executar um arquivo .exe. Use a função CreateProcess.
Os aplicativos devem armazenar em cache o identificador retornado por LoadLibrary Para reduzir a necessidade de múltiplo chamadas redundante. Isso é de desempenho determinado valor ao trabalhar com os módulos MUI DLL, as bibliotecas serão necessárias ser carregado por múltiplo recursos.
Se o módulo é um DLL ainda não esteja mapeado para o processo de chamada, o sistema chama DllMain função do DLL com o valor DLL_PROCESS_ATTACH.
Em Windows Embedded CE, um DLL é carregado uma vez, mas, em seguida, é mapeado para espaço de endereço de cada processo quando um processo implicitamente ou explicitamente carrega a biblioteca com o LoadLibrary função.
Quando Windows Embedded CE carrega um DLL, todas as informações caminho são ignoradas quando determinar se o DLL já está carregado. Isso significa que um DLL com o mesmo nome, mas um caminho diferente somente pode ser carregado uma vez. Além disso, um módulo terminando com o .cpl extensão é tratado como se a extensão .dll.
Ele não é seguro para chamar LoadLibrary a partir DllMain.
Módulo alças não são globais ou herdadas. Um chamar para LoadLibrary por um processo não gerar um identificador que outro processo pode usar — de exemplo, em chamado GetProcAddress. O outro processo deve fazer sua própria chamar para LoadLibrary Para o módulo antes chamado GetProcAddress.
Dois módulos diferentes não podem ter o mesmo nome arquivo, mesmo se as extensões forem diferentes. Eles têm o mesmo nome módulo efetivamente. Por exemplo, se LoadLibrary é feita em Sample.cpl, o OS não carregar Sample.cpl, mas em vez disso, carrega Sample.dll novamente.
Uma limitação semelhante existe para módulos com o mesmo nome mas que residem em diretórios diferentes. Por exemplo, se LoadLibrary é chamado em \\Windows\Sample.dll e, em seguida, LoadLibrary é chamado em \\MyDir\Sample.dll, simplesmente vai ser recarregado \\Windows\Sample.dll.
Se nenhuma extensão de nome de arquivo for especificado na lpLibFileName parâmetro, o usar como padrão biblioteca extensão .dll é acrescentado. Entretanto, o seqüência de caracteres nome arquivo podem incluir um caractere à direita apontar (.) para indicar que o nome módulo não tem nenhuma extensão.
Um caminho para o módulo executável pesquisa não pode ser especificado.
A menos que o caminho completo para o módulo é especificado, Windows Embedded CE procura o seguinte caminho para o módulo:
- O caminho absoluto especificado pelo lpLibFileName parâmetro.
- Diretório a iniciar .exe.
- O diretório do Windows.
- Arquivos ROM DLL.
- Um caminho OEM-specified pesquisa.
A seguinte subchave Registro especifica um caminho pesquisa a ser usado com LoadLibrary e CreateProcess:
HKEY_LOCAL_MACHINE\Loader
SystemPath=multi_sz:\\path1\\
\\path2\\
O caminho é pesquisado somente se o caminho do arquivo sendo procurou não estiver explicitamente especificada.
O comprimento total das SystemPath valor não deve exceder 260 caracteres. Se afirmativo, o caminho será ignorado.
Uma alteração para o SystemPath chave não terá efeito até que seja um dispositivo baseado em Windows Embedded CE redefinir.
Para Mobile Windows
**Ao carregar um DLL de um processo, a executar modo do DLL depende de executar modo do processo. A seguinte tabela mostra a executar modo de DLL depending on se o processo de chamada é de confiança ou não confiáveis.
Executar processo (.exe) modo | Executar DLL confiável modo | Executar DLL não confiável modo |
---|---|---|
Confiável |
DLL carrega como de confiança. |
DLL não carregado. |
Não confiável |
DLL carrega como não confiáveis. |
DLL carregado como não confiáveis. |
Para obter informações sobre o modelo de segurança usado em dispositivos Windows Mobile powered , consulte Windows Mobile Powered Device Security Model.
Para Windows incorporado CE
Ao carregar um DLL de um processo, a executar modo do DLL depende de executar modo do processo. A seguinte tabela mostra a executar modo de DLL depending on se o processo de chamada é privilegiado ou normal.
Executar processo (.exe) modo | Executar DLL privilegiado modo | Normal DLL executar modo |
---|---|---|
Privilegiado |
DLL carrega como privilegiado. |
DLL não carregado. |
Normal |
DLL carrega como Normal. |
DLL carregado como Normal. |
Requirements
Header | winbase.h |
Library | coredll.lib |
Windows Embedded CE | Windows CE 1.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
DLL Functions
CreateProcess
DllMain
FreeLibrary
GetProcAddress