win7 64位 Installshield 无法注册模块 xxxx\xxx.dll。HRESULT -2147220473。

iamshuke 2012-04-25 10:56:58
请教各位:

在win7 64位下,用Installshield做的64位安装,注册一个自己写的64位 atl dll,安装时提示“无法注册模块 xxxx\xxx.dll。HRESULT -2147220473。请与您的技术支持人员联系。”。

该dll被安装到了正确位置,手工用Regsvr32注册可以成功(题外话,奇怪的是,用system32和syswow64下的regsvr32都行,它们一个是32位的,一个是64位的)。

同一安装工程中还注册了一个32位的exe com,可以注册成功(毕竟和dll的注册方式不一样)。

该dll的32位版本可以在Installshield制作的32位安装中成功注册。

另外,重写一个空的测试atl dll问题相同,加上regsvr32能成功注册,估计不是dll的问题。
...全文
5102 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zigeno 2014-04-09
  • 打赏
  • 举报
回复
我遇到了同样的情况,在xp上可以安装注册,在win7上“未能注册的……”。在win7上安装时忽略注册,然后可以手动注册。在win7上安装vs2008,安装xp上编译的程序可以实现自动注册。请问楼主,如果系统没安装vs2008,如何才能让安装程序自动注册呢?
向立天 2012-04-25
  • 打赏
  • 举报
回复
如果手工注册可以成功而通过代码不行
那会不会是相对路径的问题
oyljerry 2012-04-25
  • 打赏
  • 举报
回复
是否缺少64bit的ATL,VC等dll文件
向立天 2012-04-25
  • 打赏
  • 举报
回复
那就用脚步注册实现
iamshuke 2012-04-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
是否缺少64bit的ATL,VC等dll文件
[/Quote]

不缺少,因为手工注册能通过。

[Quote=引用 2 楼 的回复:]
如果手工注册可以成功而通过代码不行
那会不会是相对路径的问题
[/Quote]

应该不是,因为报错中给出的路径是对的。是用的Installshield的自注册方式,不是脚本注册。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧