上一页 | 目录 | 下一页

4.11 插件 DLLs

脚本语言允许你通过一个 DLL 文件的函数扩展它的能力。可能最好的例子就是在每个 NSIS 发布的版本里附带的 InstallOptions.dll。

当 NSIS 编译器开始时它会扫描插件目录的 DLL 并且列出找到的插件和输出的函数。在编译时如果遇到有序的冒号如 fred::flintstone 编译器将会作为关键字在该列表中查找。如果列表项列入了 fred.dll 并输出 flintstone 则 NSIS 将会把 fred.dll 文件打包到安装程序里。

当插件命令执行时 NSIS 将会解压所需的插件 DLL 文件到一个临时目录 ($PLUGINSDIR),把指定的参数全部压入(从右到左次序),然后执行 DLL 函数。

4.11.1 使用插件命令

一般插件的调用像下面这样:

InstallOptions::dialog "ini_file_location.ini"

所有的参数都压入堆栈 (在这个例子中,该插件函数仅需要一个参数).还有一些插件不需要在堆栈里有任何参数,而其他的有可能需要几个或更多。要使用插件命令你首先需要阅读插件附带的文档以了解该插件函数需要什么样的参数。

4.11.2 手动调用插件

如果你想调用一个用户硬盘或其他地方里的插件,你可以使用 CallInstDLL。几乎所有插件都提供了安装程序的泛函数,所以使用插件命令是一个简易的方法。使用 CallInstDLL 对于你创建了插件并包含在你的应用程序里并被复制到安装目录里的情况来说非常有用。

上一页 | 目录 | 下一页