Мне не повезло импортировать DLL Delphi в программу Inno Setup (Unicode). DLL имеет простую процедуру ..Inno Setup не удалось импортировать DLL
procedure Foo(); stdcall;
begin
end;
exports
Foo;
DLL включен в источнике программы установки и добавлен в список файлов:
[Files]
Source: "MyDLL.dll"; Flags: dontcopy
Тогда я достаю этот DLL в инициализации:
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('MyDLL.dll');
end;
И, наконец, объявил эту процедуру в сценарии:
function DoFoo(): Bool;
external '[email protected] stdcall';
Однако, когда я запускаю установку, я получаю сообщение об ошибке:
Cannot Import dll: <utf8>MyDLL.dll.
Что я делаю неправильно?
Было бы хорошо, если программа установки Inno дал сообщение более описательный ошибки, такие, как, скажем, например, 'File not found MyDLL.dll' –
Это движок Pascal Script вызывает это исключение. Но да, сторона Inno Setup может проверить, существует ли файл в методе события ['CodeRunnerOnDllImport'] (https://github.com/jrsoftware/issrc/blob/is-5_5_4/Projects/Main.pas#L2031) для библиотек которые загружаются при инициализации (не вынуждены задерживать нагрузку). Если библиотека не будет существовать, она сообщит о более разумном сообщении, прекратит установку и больше не будет пытаться импортировать функцию из несуществующего файла библиотеки. Да, такая проверка будет в порядке. – TLama