我有一个定制的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;在那里。
所以,我有以下问题:
答案 0 :(得分:0)
您可能缺少某些依赖项。在有问题的系统上使用Dependency Walker检查.DLL。您很可能会发现您直接链接到其中一个MSVCRT文件,并且所述系统上未安装VC C ++运行时文件。
您可以更改代码,以便don't need the CRT(/Zl)或切换到静态链接(/MT)。