无法注册dllocx:DLLRegisterServer失败!代码Ox8002801C访问OLE注册表错误

无法注册dllocx:DLLRegisterServer失败!代码Ox8002801C访问OLE注册表错误,第1张

无法注册dll/ocx:DLLRegisterServer失败,是设置错误造成的,解决方法如下:

1、首先按照提示找到注册失败的文件,文件不同,路径不同。

2、然后下载反编译工具Depends。

3、打开Depends,点击左上角的文件→打开→选择文件的路径→打开。

4、文件打开后,会显示文件有哪些错误。

5、然后右键不能注册的文件,选择打开方式为C:\Windows\System32\regsvr3  2.exe,全部注册成功后,即可打开软件。

之前在帮测试同事排查一个这样的问题:在一台win7的机器上,可能是程序依赖的某个重要的控件没有注册成功,导致某个重要的功能出现异常。当时的第一反应就是,手动注册验证一下,于是用regsvr32命令手动注册了控件,结果提示“DllRegisterServer的调用失败,错误代码为0x******** “,如下图所示:

这就比较奇怪了,绝大多数情况下都能自动注册成功,为什么在这台机器出现问题呢?是控件本身写的有问题?XP下没有出现过手动注册失败的问题,难道是Win7中的UAC权限引起的?

于是,到系统盘的system32目录下,找到cmd.exe,选中之点击右键,选择以管理员身份运行方式打开,此时再使用regsvr32注册,注册成功了,所以确定此问题就是由UAC权限引起的。

其实还有一个简单的做法,直接将系统的UAC权限关闭,然后再手动注册一下就可以了。

1、win7 下注册dll文件失败,提示模块“xx.dll”已加载,但找不到入口点DllRegisterServer

原因:该dll文件非可注册组件,没有包含DllRegisterServer函数,可用depend.exe 查看

2、win7 下注册dll文件失败,提示模块“xx.dll”已加载,但对DllRegisterServer的调用失败,错误代码为0x80020009

原因:win7的权限问题,可用以下步骤解决。但win7下把dll放入system32文件下,用下面方法行不通

开始--所有程序--附件--命令行--右键“以管理员身份运行”进入cmd方式,然后在cmd方式下进入要注册dll所在文件夹中,再次使用regsvr32 /s xx.dll,就可以了

3、网页下载时出现 cab安装 “无法将文件复制到目标目录”,原因System32文件夹权限访问问题。

解决: 在inf文件中,DestDir设为空 即:DestDir=。

DestDir,它的值是dll将要存到本地硬盘的位置,如果它的值是10,则将dll放到\Windows或者\WinNT下;如果是 11,则放到\Windows\System或者\WinNT\System32下;如果是空(就是没有值)则会放到\Windows或者\WinNT下的Downloaded Program Files目录下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6342843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-20
下一篇 2023-03-20

发表评论

登录后才能评论

评论列表(0条)

保存