我有一个Inno安装脚本,其中包含一些基本内容的代码部分。但我还有另一个Inno Setup脚本文件(.iss)专门处理Windows服务。我想直接从我的主脚本中调用这些函数/过程。那么我如何#include
将services.iss
文件放入我的主脚本中,以便我可以从Code
部分调用其函数?
我在网上看到了一些示例,说明如何使用此方法拆分文件部分,这很好,但我希望能够在安装之间使用通用代码脚本拆分代码部分。我可以在这里和那里找到它的提及,但它没有告诉你如何做到这一点。
答案 0 :(得分:1)
正如您自己提到的,请使用#include
pre-processor directive。
如果你有一个像common.pas
这样的公共代码文件:
procedure CommonProcedure;
begin
{ ... }
end;
您可以将其包含在主.iss
脚本中,例如:
[Code]
#include "common.pas"
function InitializeSetup(): Boolean;
begin
{ Calling procedure included from the common.pas }
CommonProcedure;
Result := True;
end;
扩展名并不重要。我使用.pas
作为文件,它纯粹是一个Pascal(脚本)代码。但如果您更喜欢.iss
,那么这是您的选择。尽管如此,从语法上来说,将部分名称包含在文件中会更合适:
[Code]
procedure CommonProcedure;
begin
{ ... }
end;
并在[Code]
部分的外部包含文件:
#include "common.pas"
[Code]
function InitializeSetup(): Boolean;
begin
{ Calling procedure included from the common.pas }
CommonProcedure;
Result := True;
end;
这种方法甚至可以为您提供更大的灵活性,例如如果你需要一些代码支持文件:
[Files]
Source: "InnoCallback.dll"; Flags: dontcopy
[Code]
procedure CommonProcedure;
begin
{ ... }
end;
(虽然它只是编码风格的问题。从技术上讲,它并不重要,因为这些部分可以以任何方式混合。所以你可以有[Code]
部分,其次是按[Files]
部分,然后是另一个[Code]
部分。