Внешние вызовы функций с несколькими зависимыми DLL
Я хочу вызвать пару API из библиотеки DLL, которая имеет ряд зависимых библиотек DLL. Я добавил все библиотеки DLL в пакет установки и определил прототипы:
function myapi_Init(): Integer;
external 'myapi_init@A.dll stdcall setuponly loadwithalteredsearchpath delayload';
Я извлекаю все библиотеки DLL, используя ExtractTemporaryFiles('*.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 извлекаются и в том же месте. Я предпочитаю первый случай, потому что он избегает указания всех имен DLL для каждого API. Что я делаю не так в первом случае, чтобы вызвать сбой?