3

我正在尝试打开 VB6 项目并收到“未注册对象库”错误。

机器是64位的。我在下面尝试过,但它抛出错误说“'regtlib' 不被识别为内部或外部命令、可运行程序或批处理文件。”

cd C:\Windows\SysWOW64
regtlib msdatsrc.tlb

'C:\Windows\Microsoft.NET\Framework64\v4.0.30319'文件夹有'regtlibv12'文件。我在那个文件夹里试过'regtlibv12 msdatsrc.tlb',但没有帮助。

我在一个论坛上读到卸载 Internet Explorer 10 是解决方案,我试过了,但没有帮助。

我非常感谢您的建议。

4

3 回答 3

1

regtlb.exe 用于注册类型库,在旧的 Windows 版本中,它通常可以在下面找到

c:\windows\system32\RegTlb.exe

.Net Frameworks 带来了一个新版本:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regtlibv12.exe

您应该能够注册任何 *.tlb 文件

regtlibv12.exe file.tlb

并注销

regtlibv12.exe -u file.tlb

您必须确保这两个文件都可以访问,在打开 .Net 文件夹时使用类型库的完整路径。

当然,您实际上需要有该文件,否则注册将不起作用。

于 2014-06-19T21:21:34.690 回答
1

在重建的 Windows 7 64 位机器上,我在我们仍然维护的 VB6 应用程序上遇到了这个错误。

我尝试在 SysWoW64 中多次重新注册 MSCOMCTL.OCX,尝试将项目引用从 2.0 更改为 2.1 以及提供的所有其他解决方案。最后,我使用 MSCOMCTL.OCX 创建了一个新项目(重新注册后),保存项目文件并在记事本中打开它。我注意到在我的 VBP 中,公共控件库是这样引用的:

Reference=*\G{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0#..\..\Windows\SysWOW64\MSCOMCTL.OCX#Microsoft Windows Common Controls 6.0 (SP6)

在工作项目中,它是这样引用的:

Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; mscomctl.ocx

更改为使用对象引用然后解决了这个问题。请注意,我不知道为什么这是一个项目引用而不是组件引用,并且这个项目在机器重建之前已经成功编译。

于 2015-02-10T14:53:29.927 回答
0

我最近得到了一个新的 Windows 7 64 并且必须安装 VB6。当我尝试打开我的 VB6 项目时,我也收到了“未注册对象库”错误。

我用以下方法解决了这个问题:cd C:\Windows\SysWOW64\regtlib msdatsrc.tlb

于 2015-07-09T16:17:26.913 回答