【发布时间】:2012-05-02 06:35:37
【问题描述】:
NSIS 脚本是用什么语言编写的?
它是 NSIS 自己的语言还是通用语言甚至是汇编本身?它看起来对 Assembly 非常熟悉。我查看了该网站以试图找出它是什么语言,但它没有解释它是什么语言。
【问题讨论】:
标签: installation nsis
NSIS 脚本是用什么语言编写的?
它是 NSIS 自己的语言还是通用语言甚至是汇编本身?它看起来对 Assembly 非常熟悉。我查看了该网站以试图找出它是什么语言,但它没有解释它是什么语言。
【问题讨论】:
标签: installation nsis
NSIS 用于编写脚本的指令有点像交叉 在 PHP 和程序集之间。
这就是手册要说的。脚本语言是 NSIS 独有的,我看不出将它与其他语言进行比较的意义。 (NSIS 从基本的Winamp plugin installer 演变而来,更多历史可用here)
几年前添加了LogicLib,它添加了“高级”宏,因此您可以在没有goto 的情况下执行基本的If 和循环。调用函数和插件仍然需要将参数推送到堆栈 asm 样式。
语言基本上有三种指令:
! 开头(!if 1 > 0)安装程序 UI 包含一个或多个 pages。每个页面都可以基于多个回调函数(Show、Leave 等)执行代码,但大多数指令在 instfiles 页面(带有进度条和日志窗口的页面)上执行 instfiles 页面执行所有部分中的代码。 section 基本上是用于将安装程序组织成不同部分的文件和说明的集合。如果安装程序包含一个组件页面,则会为用户提供一个列表,他们可以在其中选择要执行的部分。
可以在in the source 找到完整的指令列表(此列表不包括来自外部包含文件的插件和帮助宏)编译器 (makensis.exe) 验证并压缩这些指令(以及您包含的其他文件)放入一个附加到用 C 编写的小型 GUI 应用程序的 blob 中。这个小应用程序解释这些指令...
【讨论】:
这是他们自己的“语言”,松散地基于汇编程序。
据我了解,它会将其编译为本机代码,因此安装程序如此之小 :)
【讨论】: