我正在尝试打开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是解决方案,我尝试了但没有帮助。
我非常感谢你的建议。
答案 0 :(得分:1)
regtlb.exe用于注册类型库,在较旧的Windows版本中,它通常可以在
下找到c:\windows\system32\RegTlb.exe
.Net框架带来了新版本:
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文件夹时,请使用类型库的完整路径。
当然,您确实需要提供该文件,否则注册将无法正常工作。
答案 1 :(得分: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
更改为使用对象引用然后修复了问题。请注意,我不知道为什么这是项目引用而不是组件引用,并且该项目在机器重建之前已成功编译。
答案 2 :(得分:0)
我最近买了一台新的Windows 7 64,不得不安装VB6。当我尝试打开我的VB6项目时,我还得到了“Object library not registered”错误。
我用以下方法解决了这个问题: cd C:\ Windows \ SysWOW64 \ regtlib msdatsrc.tlb