NSIS 脚本,CallInstDLL 和插件 DLL 之间的区别

NSIS Scripting, difference between CallInstDLL and Plugin DLL

标题几乎涵盖了我的问题。

CallInstDLL 是直截了当的并记录在案 here.

CallInstDLL $INSTDIR\somedll.dll somefunction

问题是它与插件(也称为扩展 DLL)有何不同。扩展 DLL 调用如下

MyExtDll::MyFunction arg1 arg2 ...

生成的代码没有区别,Dll::Export只是一个语法快捷方式。

MyExtDll::MyFunction arg1 arg2 被扩展成这样:

InitPluginsDir
File "/oname=$pluginsdir\MyExtDll.dll" "${NSISDIR}\Plugins\MyExtDll.dll"
Push arg2
Push arg1
CallInstDll "$pluginsdir\MyExtDll.dll" MyFunction