让VB6 ADO应用程序在Windows 7中工作

时间:2011-08-11 14:33:54

标签: windows-7 vb6 ado

我已经继承了几个目前无法在.NET中重写的旧VB6应用程序。这些旧的应用程序都使用ADO,并在我的XP机器上正常编译。自从切换到Windows 7机器后,应用程序编译得很好,但是当它们部署时(在XP机器上),我会收到错误。这是Microsoft文章讨论的一个已知问题:

http://support.microsoft.com/kb/2517589

本文对解决方法进行了非常详细的解释,其中涉及复制“.TLB”文件并使用“regtlibv12”进行注册。当我尝试注册它时,收到此错误消息:

C:\ Program Files \ Common Files \ System \ ado \ msado60_Backcompat.tlb的RegisterTypeLib失败:80029c4a

我也尝试使用Windows文件夹中的旧“regtlib.exe”注册此内容,但出现此错误:

C:\ Program Files \ Common Files \ System \ ado \ msado60_Backcompat.tlb的LoadTypeLib失败:80029c4a

因此,我无法继续解决这个问题。我将非常感谢任何人可以给我如何正确注册此文件的任何指导。

提前谢谢!

3 个答案:

答案 0 :(得分:13)

将.TLB文件放在适当的位置,如

C:\Program Files\Common Files\System\ado

然后在VB6 IDE中打开一个新项目(升级,即作为管理员)。选择Project | References ...然后单击Browse按钮。导航到新的.TLB文件并将其打开。选中该框以选择项目并关闭“参考”对话框。

现在应该注册。

如果绝望,请尝试VB Type Library Registration Utility

答案 1 :(得分:8)

您可能已将文件下载为C:\temp\Msado60_Backcompat_i386.tlb,但未将其重命名。该示例用于注册C:\temp\Msado60_Backcompat.tlb(注意,没有_i386)。

使用正确的文件名运行命令。

答案 2 :(得分:3)

为了根据最新信息更新此答案列表,Microsoft发布了KB 2640696,以更直接的方式解决了这个问题。此修补程序使您可以更轻松地在构建计算机上进行部署,并解决了下层操作系统问题。

可以在以下blog post找到更完整的补丁图片。