无法通过nsis脚本注册我的64位dll?

无法通过nsis脚本注册我的64位dll?,nsis,dllregistration,Nsis,Dllregistration,我有一个64位的dll,我可以在命令提示符下用regsvr32注册。但问题是,当我试图通过nsis脚本注册我的dll时,它没有注册。我在nsis脚本中使用了RegDLL命令。有人知道问题可能是什么吗?RegDLL在任何情况下都有问题,但最简单的情况除外。谷歌网站:forums.winamp.com nsis为例 要确保成功注册DLL、类型库、BHO等,应使用InstallLib。它为x64库安装提供了一个选项(还有更多!) 有关使用NSIS安装库的更多详细信息,请参阅。您可以改用: 如果使用64

我有一个64位的dll,我可以在命令提示符下用regsvr32注册。但问题是,当我试图通过nsis脚本注册我的dll时,它没有注册。我在nsis脚本中使用了RegDLL命令。有人知道问题可能是什么吗?

RegDLL在任何情况下都有问题,但最简单的情况除外。谷歌
网站:forums.winamp.com nsis
为例

要确保成功注册DLL、类型库、BHO等,应使用
InstallLib
。它为x64库安装提供了一个选项(还有更多!)

有关使用NSIS安装库的更多详细信息,请参阅。

您可以改用:


如果使用64位dll运行rundll32.exe,则它足够智能,可以启动64位版本的自身。ExitWait而不是ExecWait

你可以使用:


ExecWait'$SYSDIR\rundll32.exe“$INSTDIR\mydll.dll DllRegisterSe

问题几乎可以肯定,这是一个32位进程试图加载64位dll。不过,我不知道如何修复它。@Gabe运行外部regsrv32肯定是选项之一;)@Gabe 32位进程是指安装程序。如果是这样的话,我该如何制作64位nsis安装程序?@Eugene:我应该说我不知道如何在nsis中修复它。我认为它最好使用regsvr32,它是MS提供的注册ActiveX DLL的程序,它还检测32/64位DLL(只需使用/s参数省略消息)。博主雷蒙德•陈女士建议不要使用RundL32,请看@Bevan Collins谢谢你,你救了我一天!事实证明,您的方法是从32位安装程序中注册64位DLL的唯一方法。
ExecWait '"$SYSDIR\rundll32.exe" $INSTDIR\mydll.dll DllRegisterServer'