我没有任何运气将Delphi DLL导入到Inno安装程序(Unicode)中。该DLL有一个简单的方法..Inno安装程序无法导入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.
我在做什么错?
本来不错,如果创新安装了一个更具描述性错误消息,例如,比方说,例如'文件未找到MyDLL.dll' –
引发此异常的是Pascal脚本引擎。但是,是的,Inno Setup端可能会检查该文件是否存在于库的['CodeRunnerOnDllImport'](https://github.com/jrsoftware/issrc/blob/is-5_5_4/Projects/Main.pas#L2031)事件方法中它们在初始化时加载(不是强制延迟加载)。如果库不存在,它会报告一些更明智的信息,终止安装并避免尝试从不存在的库文件导入功能。是的,这样的支票就没问题。 – TLama