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