3

NSIS脚本是用什么语言编写的?

它是 NSIS 自己的语言还是通用语言甚至是 Assembly 本身?它看起来对 Assembly 很熟悉。我在网站上查看过它是什么语言,但它没有解释它是什么语言。

4

2 回答 2

6

NSIS 用于编写脚本的指令是 PHP 和程序集之间的一种交叉。

这就是手册要说的。脚本语言是 NSIS 独有的,我看不出将它与其他语言进行比较的意义。(NSIS 从基本的Winamp 插件安装程序演变而来,更多历史可在此处获得)

几年前添加了LogicLib,它添加了“高级”宏,因此您可以在没有 goto 的情况下执行基本的 If 和循环。调用函数和插件仍然需要将参数推送到堆栈 asm 样式。

该语言基本上具有三种类型的指令:

安装程序 UI 由一个或多个页面组成。每个页面都可以基于多个回调函数(Show、Leave 等)执行代码,但大多数指令在 instfiles 页面(带有进度条和日志窗口的页面)上执行 instfiles 页面执行所有部分中的代码。一个部分基本上是用于将安装程序组织成不同部分的文件和说明的集合。如果安装程序包含一个组件页面,用户将获得一个列表,他们可以在其中选择要执行的部分。

可以在源代码中找到完整的指令列表(此列表不包括来自外部包含文件的插件和辅助宏)编译器 (makensis.exe) 验证这些指令(以及您包含的其他文件)并将其压缩为一个 blob附加到一个用 C 编写的小型 GUI 应用程序。这个小应用程序解释了这些指令......

于 2012-05-02T08:04:13.923 回答
3

它是他们自己的“语言”,松散地基于汇编程序。

据我了解,它将其编译为本机代码,因此安装程序如此之小:)

于 2012-05-02T06:40:53.830 回答