Wann und warum CoLoadLibrary verwenden?
-
06-07-2019 - |
Frage
Die Beschreibung von CoLoadLibrary () sagt, es ist so ziemlich das gleiche tut wie LoadLibraryEx () - lädt eine DLL in den Prozess. COM-Klassen Erstellungsfunktionen - CoCreateInstance () und CoGetClassObject () - beides auch die notwendige DLL in den Prozess geladen werden
.Warum ist CoLoadLibrary () an erster Stelle benötigt und wie sie verwendet werden?
Lösung
Haben Sie einen Blick auf den Code:
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
So ist es nur Anrufe:
LoadLibraryEx( FileName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH ).
Vermutlich nur die Routine für die Abwärtskompatibilität besteht -. Es wahrscheinlich hat seine Wurzeln in Win16
Andere Tipps
Vielleicht, wenn Sie Ihre eigenen regsvr32.exe schreiben? Aber JP die Demontage nicht wirklich meine Vermutung unterstützen, weil Sie nur LoadLibraryEx stattdessen verwenden könnten. Vielleicht in den alten Tagen, geplant Microsoft auf COM-DLLs einen Tag in einer anderen Art und Weise als regulärer DLLs (D-COM?) Geladen, so war dies eine Möglichkeit, sicherzustellen, Zukunft Kompatibilität.