我有一個64位的DLL,我可以通過regsvr32從命令提示符註冊。但問題是,當我嘗試註冊我的DLL通過nsis腳本它沒有註冊。我在腳本中使用了RegDLL命令。任何人都知道問題可能是什麼?無法通過nsis腳本註冊我的64位DLL?
回答
你可以使用rundll32.exe代替:
ExecWait '"$SYSDIR\rundll32.exe" $INSTDIR\mydll.dll DllRegisterServer'
RUNDLL32.EXE是足夠聰明,如果你有一個64位的DLL
我認爲它會更好地使用regsvr32,這是MS提供的用於註冊ActiveX DLL的程序,它也檢測32/64位DLL(僅使用/ s參數來省略消息)。 MS博客Raymond Chen建議不要使用rundll32,請參閱http://blogs.msdn.com/b/oldnewthing/archive/2013/01/04/10382242.aspx –
@Bevan Collins謝謝你,你救了我的一天!事實證明,您的方法是從32位安裝程序中註冊64位DLL的唯一方法。 – denim
RegDLL被稱爲除了最簡單的情況之外的任何問題。谷歌site:forums.winamp.com nsis
爲例。
爲了確保您的DLL,類型庫,BHO等的註冊成功發生,您應該使用InstallLib
。它爲x64磁帶庫安裝(以及更多!)提供了一個選項
有關使用NSIS安裝磁帶庫的更多詳細信息,請參見http://nsis.sourceforge.net/Docs/AppendixB.html#B.1。
ExitWait沒有發現NSIS腳本運行它推出自身的64位版本。 ExitWait代替ExecWait。
你cound使用:
ExecWait「 「$ SYSDIR \ RUNDLL32.EXE」 $ INSTDIR \ MYDLL.DLL DllRegisterSe
- 1. NSIS:無法從Windows 7中的註冊表中獲取JRE版本64位
- 2. 爲什麼64位COM DLL無法使用Delphi XE3註冊
- 3. DLL不會在32位或64位下注冊。我如何註冊他們?
- 4. 無法註冊DLL
- 5. 爲什麼我的DLL無法註冊?
- 6. 通過NSIS安裝程序註冊BHO
- 7. 從32位wix腳本註冊64位COM組件
- 8. 通過ScriptManager的註冊腳本
- 9. 註冊32位COM DLL到64位Windows 7
- 10. 在64位系統上註冊32位DLL
- 11. 註冊通過vba使用的dll
- 12. Python 64位DLL COM服務器註冊問題在64位Windows 7
- 13. 無法註冊啓動腳本
- 14. 在64位.net應用程序通過c + + 64位DLL pInvoke
- 15. 如何在沒有gacutil的情況下注冊64位DLL
- 16. 在64位Windows Server 2008 Standard SP2上註冊dll IIS 7
- 17. 如何在64位操作系統中註冊activeX組件(.dll)
- 18. 如何使用WiX手動註冊64位DLL
- 19. 如何在Windows 7 64位上註冊DLL文件?
- 20. 無法在WordPress中註冊我的jQuery腳本
- 21. 通過installutil註冊不同版本的dll
- 22. 無法使用regsvr32註冊dll
- 23. 無法註冊.dll Windows 7 Professional x64
- 24. 在64位過程中的64位DLL Vista失敗 - 無法加載DLL'dllname':無法找到指定的模塊
- 25. 在Windows 7上的64位機器上註冊您的32位DLL
- 26. 如何在nsis腳本中使用regasm註冊兩個dll:s?
- 27. 註冊的DLL
- 28. 編組在通過ComInterop C#非託管的DLL而無需註冊DLL
- 29. 如何通過安裝腳本功能將註冊表添加到64位區域?
- 30. xp_md5.dll 64位
的問題是幾乎可以肯定,這是一個32位進程嘗試加載64位DLL。不過,我不知道如何解決這個問題。 – Gabe
@Gabe運行外部regsrv32絕對是其中的一個選項;) –
@Gabe 32位進程你的意思是安裝程序。如果是的話,我如何做一個64位nsis安裝程序? – surendran