Pergunta

A descrição do CoLoadLibrary () diz que faz praticamente o mesmo que LoadLibraryEx () - Carrega um DLL no processo. COM funções de criação de aulas - CoCreateInstance () e CoGetClassObject () - ambos fazem carregar a DLL necessária para o processo demasiado

.

Então, por que é CoLoadLibrary () necessários em primeiro lugar e como ele deve ser usado?

Foi útil?

Solução

Tenha um olhar para o código:

mov     edi,edi
push    ebp
mov     ebp,esp
push    8
push    0
push    dword ptr [ebp+8]
call    dword ptr [ole32!_imp__LoadLibraryExW (71eb1214)]
pop     ebp
ret     8

Por isso, apenas chama:

LoadLibraryEx( FileName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH ).

Presumivelmente, a rotina apenas existe para compatibilidade com versões anteriores -. Ele provavelmente tem suas raízes no Win16

Outras dicas

Talvez se você estivesse escrevendo seu próprio regsvr32.exe? Mas JP é desmontagem realmente não apoiar o meu palpite, porque você pode simplesmente usar LoadLibraryEx vez. Talvez nos dias antigos, a Microsoft planejava COM DLLs dia sendo carregado de uma maneira diferente do que DLLs regulares (D-COM?), Por isso foi uma forma de garantir futuro compatibilidade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top