У меня есть 64-битная dll, которую я могу зарегистрировать из командной строки с помощью regsvr32. Но проблема в том, что когда я пытаюсь зарегистрировать свою dll через скрипт nsis, она не регистрируется. Я использовал команду RegDLL в скрипте nsis. Кто-нибудь знает, в чем может быть проблема?
Не можете зарегистрировать мою 64-битную dll через скрипт nsis?
Ответы (3)
вместо этого вы можете использовать rundll32.exe:
ExecWait '"$SYSDIR\rundll32.exe" $INSTDIR\mydll.dll DllRegisterServer'
rundll32.exe достаточно умен, чтобы запустить 64-битную версию самого себя, если вы запустите его с 64-битной dll.
Известно, что RegDLL проблематична во всех случаях, кроме простейших. Google site:forums.winamp.com nsis
за примерами.
Чтобы убедиться, что регистрация вашей DLL, библиотеки типов, BHO и т. Д. Прошла успешно, вы должны использовать InstallLib
. Он предоставляет возможность установки библиотеки x64 (плюс многое другое!)
См. http://nsis.sourceforge.net/Docs/AppendixB.html#B.1 для получения дополнительных сведений об установке библиотеки с помощью NSIS.
ExitWait не найден сценарий NSIS. ExitWait вместо ExecWait.
вы часто используете:
ExecWait '"$ SYSDIR \ rundll32.exe" $ INSTDIR \ mydll.dll DllRegisterSe