我有两台测试机器说机器A和B(都是64位)。有一个VB6应用程序使用Vbsql OLE自定义控制模块(Vbsql.ocx)。VBSQL.OCX未注册-ERROR
这VB应用程序运行正常,而不在机器A的任何错误,但它当机B.执行
注意与以下错误消息失败:我从一个机器复制的OCX文件注册它在机器B上,但它无法注册错误截图如下所示。
这两款机器没有VB6 IDE,所以我可以能够调试。
我有两台测试机器说机器A和B(都是64位)。有一个VB6应用程序使用Vbsql OLE自定义控制模块(Vbsql.ocx)。VBSQL.OCX未注册-ERROR
这VB应用程序运行正常,而不在机器A的任何错误,但它当机B.执行
注意与以下错误消息失败:我从一个机器复制的OCX文件注册它在机器B上,但它无法注册错误截图如下所示。
这两款机器没有VB6 IDE,所以我可以能够调试。
我找到了一种方法来注册VBSQL.OCX文件。
使用依赖关系walker我计算出NTWDBLIB.dll文件在计算机B中丢失,因此被复制到SYSWOW64文件夹中并使用提升的命令提示符注册。
您是否尝试过运行32位版本的regsvr32
?
%WINDIR%\...\SysWOW64\regsvr32 vbsql.ocx
64位版本不会加载此(推测)32位DLL。
我已经尝试过使用syswow64注册,但得到相同的错误信息 – Jeyaganesh
下运行命令使用客户端系统上'依赖Walker'工具,以确定哪些DLL文件丢失的客户端系统上,并将其复制到同一目录客户端系统作为.OCX并尝试重新运行它 - http://www.dependencywalker.com – Petesh
谢谢。在我的情况下,很明显,VBSQL.OCX是问题,并missing.Why它未能加载时再次注册? – Jeyaganesh
@jeyaganesh:正如Petesh所说,OCX可能需要其他DLL,这些DLL在系统上也是缺失的。这就是Dependency Walker的作用。 – krlmlr