何时以及为何使用 CoLoadLibrary?

sha*_*oth 1 windows com interop com-interop

CoLoadLibrary() 的描述表明它的功能与 LoadLibraryEx() 几乎相同 - 将 DLL 加载到进程中。COM 类创建函数 - CoCreateInstance() 和 CoGetClassObject() - 都将必要的 DLL 加载到进程中。

那么为什么首先需要 CoLoadLibrary() 以及应该如何使用它呢?

Joh*_*ing 5

看一下代码:

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
Run Code Online (Sandbox Code Playgroud)

所以它只是调用:

LoadLibraryEx( FileName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH ).
Run Code Online (Sandbox Code Playgroud)

据推测,该例程的存在只是为了向后兼容——它可能源于 Win16。