[英]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.