Внешние вызовы функций с несколькими зависимыми 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. Что я делаю не так в первом случае, чтобы вызвать сбой?

0 ответов

Другие вопросы по тегам