繁体   English   中英

如何将没有NSH文件的DLL插件添加到我的NSIS脚本中?

[英]How to add a DLL Plugin without NSH file into my NSIS script?

我正在使用NSIS 2.46。 我试图使用的插件是HwInfo插件( 官方链接 )。 ZIP文件附带一些源代码和DLL文件。 我把HwInfo.dll放在\\NSIS\\Plugins目录下。 当添加一个插件,我应该!include.nsh文件以及,这HWINFO 提供。

我正在尝试在安装之前分析客户端的硬件 -

Function .onInit
HwInfo::GetCpuSpeed

StrCpy $R0 $0
MessageBox MB_OK "You have a $0GHz CPU"

HwInfo::GetSystemMemory
StrCpy $0
MessageBox MB_OK "You have $0MB of RAM"
FunctionEnd

但是HwInfo::GetCpuSpeed'invalid command'

如何在没有NSH文件的情况下使用插件? 还有其他选择吗?

解决了:

我在这个脚本的最顶部添加了!addplugindir "${NSISDIR}\\Plugins" 这有助于在编译时检测\\NSIS\\Plugins目录中的HwInfo.dll

并非所有插件都有.nsh文件,但维基页面通常会告诉您如何使用特定插件。

如果你运行makensis /V4 yourscript.nsi它将列出所有插件及其导出的功能,如果你的插件不在列表中,它可能不在正确的目录中。 确保将其放在正确的目录中或使用!addplugindir ...

我知道这个问题有一个公认的答案,但对于使用NSIS v3.x的人的信息:

插件文件夹现在有两个子文件夹,一个用于ANSI,一个用于UNICODE,因此您需要将插件复制到${NSISDIR}\\Plugins\\x86-ansi\\${NSISDIR}\\Plugins\\x86-unicode\\分别为插件dll的ANSI和UNICODE版本。

我猜你是否使用64位NSIS端口,你也有\\x64-ansi\\\\x64-unicode子文件夹,但我没有具体检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM