设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4564|回复: 1
打印 上一主题 下一主题

[ActiveX] [技巧]OCX或DLL注册出现模块已加载,但对dllregisterServer的调用失败

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2015-2-13 09:52:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Access中使用第三方控件,在注册dll或者ocx的时候,偶然会遇到这么一个问题:注册时提示模块已加载,但对dllregisterServer的调用失败,错误代码为0x8004*****
有人员说需要在管理员的模式下进行注册:本人测试过,会出现如下问题:
模块  加载失败。请确保该二进制存储在指定的路径中,或者调试它以检查该二进制或相关的 .dll文件是否有问题。  找不到指定的模块
还是没有能解决问题,经过长时间尝试,终于用以下方式的第一点解决了问题 本人亲测:至于另外的方式,我没有测试过。
以下是解决win7运行批处理出错不能注册dll等问题。
1.在批处理的第一行加入:cd /d %~dp0 然后在批处理上右键选择使用管理员权限运行。
2.右键任务栏,选择资源管理器,进程选项卡,显示所有用户的进程,结束explorer,文件-新建任务 explorer,此时选中“利用管理特权创建此任务".桌面显示完成后就可以直接双击批处理运行了。

3.使用第三方提权工具,例如elevate ,用法elevate -c regsvr32 demo_doreg.dll这种方法需要在每个提权的命令前都要加上elevate -c ,这种第三方工具适合于1个或者少个需要提权的情况。http://code.kliu.org/misc
4.使用bat to exe converter 1.51把批处理转换为exe,在转换的时候有选项可以选择 admin 权限。使用此软件时最好关掉360和其他杀软,因为软件好像要upx加壳。http://www.softpedia.com/get/Sys ... Exe-Converter.shtml
事项: 1和4 两项适合分发给其他人员部署,第2条还是自己保留着当压箱底的吧。
--------------------------------------------------------------
win7 使用批处理注册dll可能会出现如下问题。
1.模块  已加载,但对dllregisterServer的调用失败,错误代码为0x80040201原因:使用管理员权限才能注册dll
2.右键使用管理员 可能会出现如下错误:模块  加载失败。请确保该二进制存储在指定的路径中,或者调试它以检查该二进制或相关的 .dll文件是否有问题。  找不到指定的模块。
原因:win7下管理员的命令行(批处理)默认的是system32文件夹。
解决方法:按照文章开头的第一条解决即可。
当然也可使用2、3、4等方案解决。
源作者:hamson09

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2015-2-13 10:02:35 | 只看该作者
好资料,顶一个。注册dll有时就是会出现这个问题。后来干脆就尽量免注册组件。不过OCX如何实现免注册这个还没实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 02:21 , Processed in 0.108092 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表