无法在NSIS脚本

时间:2017-09-12 08:47:03

标签: nsis

我有一个定制的NSIS插件来执行某些操作。 在NSIS脚本中,我通过以下命令加载了插件:

!addplugindir "Plugin\"

(在存在此nsis脚本的同一文件夹中,有一个名为&#34的文件夹;插件"其中名为 ExDll.dll 的dll存在)

我正在通过以下命令执行DLL的功能:

ExDll::Func123 "<param1>" "<param2>"

编译后,可执行文件正确执行,没有任何问题。但是,当我将相同的可执行文件移动到另一个系统时,我收到以下错误:

Could not load: C:\Users\user123\AppData\Local\Temp\nsw19B5.tmp\ExDll.dll

我检查了上面的目录(&#34; C:\ Users \ user123 \ AppData \ Local \ Temp \ nsw19B5.tmp&#34;),DLL&#34; ExDll.dll & #34;在那里。

所以,我有以下问题:

  1. 这背后可能的原因是什么?
  2. 我该如何解决此问题?

1 个答案:

答案 0 :(得分:0)

您可能缺少某些依赖项。在有问题的系统上使用Dependency Walker检查.DLL。您很可能会发现您直接链接到其中一个MSVCRT文件,并且所述系统上未安装VC C ++运行时文件。

您可以更改代码,以便don't need the CRT/Zl)或切换到静态链接(/MT)。