我有一个辅助DLL和我在安装脚本末尾调用的函数。我只想根据操作系统版本运行它。
我在代码部分中包含以下行:
function CompleteInstall(szInstallPath: String) : Integer;
external 'CompleteInstall@files:InstallHelper.dll cdecl setuponly';
我编写了一个函数来阻止DLL被解压缩,将[Check:IsXPorHigher]添加到[Files]部分中DLL的Source语句中。
当安装程序开始时,由于外部语句,它会尝试解析外部函数,导致运行时错误(无法导入...),因为我的DLL依赖于旧操作系统上不可用的功能。
我是否可以在脚本中有条件地声明该功能,或者是否需要为旧版操作系统提供单独的安装程序?我正努力为所有场景维护一个脚本。
答案 0 :(得分:4)
您是否尝试过使用delayload
选项?请参阅Inno Setup文档中 Pascal Scripting 下的使用DLL 部分。
function CompleteInstall(szInstallPath: String) : Integer;
external 'CompleteInstall@files:InstallHelper.dll cdecl setuponly delayload';