我可以在 Inno Setup 中创建自己的 类 或单位吗?

Can I create my own classes or units in Inno Setup?

我想知道是否可以在 Inno Setup 中定义我自己的单位或 类 - 具有两个字段(就像定义记录)和方法。

否,您只能定义:

  • 结构(record 关键字)- 仅限字段,并且
  • 接口(interface 关键字)- 仅限抽象方法 - COM/ActiveX.

但是你不能实现类(字段和方法)。

Pascal 脚本甚至无法识别 class 关键字。


甚至 units。 Inno Setup Pascal 脚本只是一个代码块。试图隐藏一些 implementation/code 真的没有任何意义。


如果您只是想以某种方式组织代码,可以使用 #include directive of Inno Setup pre-processor 将代码拆分为文件。

你可以有一个 header/interface-like 文件,其中包含 "public" functions/procedures 和类似实现的文件,其中包含实现和 "private" functions/procedures.

类似界面的文件(比如说header.iss):

procedure PublicProc; forward;

类似实现的文件(比如impl.iss):

procedure PrivateProc;
begin
  ...
end;

procedure PublicProc;
begin
  PrivateProc;
end;

并像这样使用它:

[Code]

#include "header.iss"

function InitializeSetup: Boolean;
begin
  { Here we can use the PublicProc, but not PrivateProc }
end;

#include "impl.iss"