Quando e por que usar CoLoadLibrary?
-
06-07-2019 - |
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?
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.