首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用regsvr32注册DLL

用regsvr32注册DLL
EN

Stack Overflow用户
提问于 2017-11-01 08:29:51
回答 1查看 2.8K关注 0票数 2

我试图在nsis安装程序中向regsvr32注册DLL (目前没有沉默):

代码语言:javascript
复制
Exec '"$SYSDIR\regsvr32.exe" "$SYSDIR\mp4mux.dll"'
Exec '"$SYSDIR_32bit\regsvr32.exe" "$SYSDIR_32bit\mp4mux.dll"'

它显示弹出的DLL已注册(32位和64位),并在安装日志中显示下一行:

代码语言:javascript
复制
Execute: "C:\WINDOWS\system32\regsvr32.exe" "C:\WINDOWS\system32\mp4mux.dll"
//for 32-bit is similar

但是,当我尝试使用它时,它不起作用(我试图用mp4编解码器创建x264视频,所以它只是显示了一个错误)。如果我将此命令复制到命令行中,则会显示相同的弹出并创建视频。

这种流动会有什么问题呢?我也尝试过RegDLLrundll32,但都没有成功。

更新:

我找不到为x64注册的DLL,只有x32。C:\WINDOWS\System32\mp4mux.dll的记录不存在,只有SysWow64中的dll记录

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-01 10:24:44

文件系统重定向将在64位Windows上将32位应用程序从System32 ($SysDir)重定向到SysWow64 .

你可以的

  • 使用x64.nsh的${DisableX64FSRedirection}宏短期禁用重定向
  • 在64位Vista和更高版本上执行$WinDir\Sysnative\regsvr32.exe

但是,当您只需要使用库宏时,为什么要经历这样的麻烦:

代码语言:javascript
复制
!include Library.nsh
!define LIBRARY_X64
!insertmacro InstallLib REGDLL NOTSHARED REBOOT_NOTPROTECTED c:\myfiles\64\dllname.dll $SYSDIR\dllname.dll $SYSDIR
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47050866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档