2009-09-01 33 views
3

我有一个助手DLL和我在设置脚本结尾调用的函数。我只想运行它取决于操作系统版本。如何从Inno Setup脚本中的DLL中有条件地导入函数?

我在代码中包括部分以下行:

function CompleteInstall(szInstallPath: String) : Integer; 
external '[email protected]:InstallHelper.dll cdecl setuponly'; 

我写了一个功能,防止被提取加入“检查:IsXPorHigher的” DLL的源语句的DLL在[文件]部分。

看来,安装程序开始时它会尝试解析由于外部语句导致的外部函数,从而导致运行时错误(无法导入...),因为我的DLL依赖于旧版OS上不可用的函数。

我可以有条件地在脚本中声明函数吗?或者这需要一个单独的安装程序的老版本的操作系统?我努力为所有场景维护一个脚本。

回答

4

您是否尝试过使用delayload选项?请参阅使用DLL Inno Setup文档中的DLL部分,在Pascal脚本下。

function CompleteInstall(szInstallPath: String) : Integer; 
external '[email protected]:InstallHelper.dll cdecl setuponly delayload'; 
+0

非常好。谢谢你的提示。 – AlanKley 2009-09-01 22:10:54

相关问题