Не удалось зарегистрировать мою 64-битную DLL через скрипт nsis? - PullRequest
3 голосов
/ 01 октября 2011

У меня есть 64-битная DLL, которую я могу зарегистрировать из командной строки с помощью regsvr32.Но проблема в том, когда я пытаюсь зарегистрировать мою DLL через скрипт nsis, он не зарегистрирован.Я использовал команду RegDLL в скрипте nsis.Кто-нибудь знает, в чем может быть проблема?

Ответы [ 3 ]

3 голосов
/ 20 октября 2011

вы можете использовать rundll32.exe вместо:

ExecWait '"$SYSDIR\rundll32.exe" $INSTDIR\mydll.dll DllRegisterServer'

rundll32.exe достаточно умен, чтобы запустить 64-битную версию самого себя, если вы запускаете ее с 64-битной DLL

3 голосов
/ 01 октября 2011

RegDLL, как известно, проблематичен во всем, кроме простейших сценариев.Google site:forums.winamp.com nsis для примеров.

Чтобы убедиться, что регистрация вашей DLL, библиотеки типов, BHO и т. Д. Прошла успешно, вы должны использовать InstallLib.Он предоставляет возможность установки библиотеки x64 (плюс еще!)

См. http://nsis.sourceforge.net/Docs/AppendixB.html#B.1 для получения дополнительной информации об установке библиотеки с NSIS.

2 голосов
/ 23 октября 2012

ExitWait не найден скрипт NSIS.ExitWait вместо ExecWait.

вы можете использовать:

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

...