簡體   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