Vb6 VBSQL.OCX未注册-错误

Vb6 VBSQL.OCX未注册-错误,vb6,activex,regsvr32,Vb6,Activex,Regsvr32,我有两台测试机器,比如机器A和机器B(都是64位)。有一个VB6应用程序,它使用Vbsql OLE自定义控制模块(Vbsql.ocx) 该VB应用程序在机器A中运行正常,没有任何错误,但在机器B中执行时失败,并显示以下错误消息 注意:我从机器A复制了ocx文件,以便在机器B上注册,但无法注册。错误屏幕截图如下所示 这两台机器都没有VB6 IDE,因此我可以进行调试。您是否尝试过运行32位版本的regsvr32 %WINDIR%\...\SysWOW64\regsvr32 vbsql.ocx

我有两台测试机器,比如机器A和机器B(都是64位)。有一个VB6应用程序,它使用Vbsql OLE自定义控制模块(Vbsql.ocx)

该VB应用程序在机器A中运行正常,没有任何错误,但在机器B中执行时失败,并显示以下错误消息

注意:我从机器A复制了ocx文件,以便在机器B上注册,但无法注册。错误屏幕截图如下所示


这两台机器都没有VB6 IDE,因此我可以进行调试。

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

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

64位版本不会加载这个(大概)32位DLL。

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

我找到了注册VBSQL.ocx文件的方法

使用dependency walker,我发现机器B中缺少NTWDBLIB.dll文件,因此将其复制到SYSWOW64文件夹中,并使用提升的命令提示符进行注册。


使用下面的Run命令注册OCX

在客户端系统上使用
Dependency Walker
工具确定客户端系统上缺少哪些DLL,并将其复制到客户端系统与.OCX相同的目录中,然后尝试重新运行它-谢谢。在我的情况下,很明显VBSQL.OCX是问题所在,并且是缺失的。为什么再次注册时无法加载?@jeyaganesh:正如Petesh所说,可能是OCX需要其他DLL,而您的系统上也缺少这些DLL。这就是Dependency Walker发挥作用的地方。Vbsql.ocx是一个设计用于SQL Server 6.5版的组件。那是17年前的事了,5次主要的发布。这不像好酒,它不会随着时间的推移而变好。使用虚拟机运行古老的软件。说得好@HansPassant。但重要的是,它在机器a中运行得非常好。我已经尝试过使用syswow64进行注册,但收到相同的错误消息我在同一目录中有OCX文件,仍然不起作用