2

多数の依存 DLL を持つ DLL からいくつかの API を呼び出したいと考えています。すべての DLL をセットアップ パッケージに追加し、プロトタイプを定義しました。

function myapi_Init(): Integer;
external 'myapi_init@A.dll stdcall setuponly loadwithalteredsearchpath delayload';

ExtractTemporaryFiles('*.dll')just fine inを使用してすべての DLL を抽出しInitializeSetup()、それぞれの API を呼び出そうとします。ランタイム エラーが発生し、dll をインポートできません...

プロトタイプを次のように再定義し、DLL を抽出するための呼び出しを削除しました。

function myapi_Init(): Integer;
external 'myapi_init@files:A.dll,B.dll,C.dll,D.dll,E.dll stdcall setuponly loadwithalteredsearchpath delayload';

これはうまくいきます。確認したところ、どちらの場合も、適切な DLL がすべて抽出され、同じ場所にありました。各 API のすべての DLL 名のスペルアウトを避けるため、最初のケースを好みます。失敗を引き起こす最初のケースで何が間違っていますか?

4

0 に答える 0