2013-01-09 66 views
1

我有两台测试机器说机器A和B(都是64位)。有一个VB6应用程序使用Vbsql OLE自定义控制模块(Vbsql.ocx)。VBSQL.OCX未注册-ERROR

这VB应用程序运行正常,而不在机器A的任何错误,但它当机B.执行

enter image description here

注意与以下错误消息失败:我从一个机器复制的OCX文件注册它在机器B上,但它无法注册错误截图如下所示。

enter image description here

这两款机器没有VB6 IDE,所以我可以能够调试。

+2

下运行命令使用客户端系统上'依赖Walker'工具,以确定哪些DLL文件丢失的客户端系统上,并将其复制到同一目录客户端系统作为.OCX并尝试重新运行它 - http://www.dependencywalker.com – Petesh

+0

谢谢。在我的情况下,很明显,VBSQL.OCX是问题,并missing.Why它未能加载时再次注册? – Jeyaganesh

+1

@jeyaganesh:正如Petesh所说,OCX可能需要其他DLL,这些DLL在系统上也是缺失的。这就是Dependency Walker的作用。 – krlmlr

回答

1

我找到了一种方法来注册VBSQL.OCX文件。

使用依赖关系walker我计算出NTWDBLIB.dll文件在计算机B中丢失,因此被复制到SYSWOW64文件夹中并使用提升的命令提示符注册。

1

您是否尝试过运行32位版本的regsvr32

%WINDIR%\...\SysWOW64\regsvr32 vbsql.ocx 

64位版本不会加载此(推测)32位DLL。

+0

我已经尝试过使用syswow64注册,但得到相同的错误信息 – Jeyaganesh

0

您可以将ocx文件放在与您的可执行文件相同的目录中。

+0

我有这个OCX文件在同一目录中,仍然不起作用 – Jeyaganesh