質問

CoLoadLibrary()の説明によると、LoadLibraryEx()とほぼ同じ-DLLをプロセスにロードします。 COMクラス作成関数-CoCreateInstance()およびCoGetClassObject()-どちらもプロセスに必要なDLLをロードします。

では、なぜ最初にCoLoadLibrary()が必要なのか、どのように使用する必要があるのですか?

役に立ちましたか?

解決

コードを見てください:

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

したがって、次のように呼び出します:

LoadLibraryEx( FileName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH ).

おそらく、このルーチンは下位互換性のためだけに存在します。おそらく、Win16にルーツがあります。

他のヒント

おそらく、独自のregsvr32.exeを書いていたのでしょうか?しかし、代わりにLoadLibraryExを使用することができるため、JPの逆アセンブリは私の推測を実際にはサポートしていません。昔は、MicrosoftはいつかCOM DLLを通常のDLL(D-COM?)とは異なる方法でロードすることを計画していたため、これは future 互換性を保証する方法でした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top