Dll 控件controlName的类mscomctlib.[ListView | TextBox | ect]不是加载的控件类

Dll 控件controlName的类mscomctlib.[ListView | TextBox | ect]不是加载的控件类,dll,vb6,compilation,compiler-errors,Dll,Vb6,Compilation,Compiler Errors,此错误来自编译vb6 dll的机器,该机器突然停止工作并正常工作 我在网上看到了很多我能找到的和我相关的解决方案。 包括那些看起来很有前途的 还有一个来自 这两种方法都建议重新注册MSCOMCTL.OCX 但在遵循了这两个原则之后,我仍然有问题。 经过数小时的搜索和尝试,我意识到有一些更新已经安装并等待机器重新启动,因为公司的政策 答案 我重新启动了机器,等待更新完成安装。 在此之后,dll编译没有问题。如果计算机在某个时间编译dll/ocx,则此答案应该有效,但如果您的计算机从未编译过dll

此错误来自编译vb6 dll的机器,该机器突然停止工作并正常工作

我在网上看到了很多我能找到的和我相关的解决方案。 包括那些看起来很有前途的 还有一个来自

这两种方法都建议重新注册MSCOMCTL.OCX

但在遵循了这两个原则之后,我仍然有问题。 经过数小时的搜索和尝试,我意识到有一些更新已经安装并等待机器重新启动,因为公司的政策

答案 我重新启动了机器,等待更新完成安装。 在此之后,dll编译没有问题。

如果计算机在某个时间编译dll/ocx,则此答案应该有效,但如果您的计算机从未编译过dll/ocx,则此答案也可能有效

因此,这个问题的简单答案是检查您的机器是否有等待重新启动的待定更新

如果是这样,请确保重新启动计算机


如果重新启动后问题仍然存在,请尝试重新注册MSCOMCTL.OCX,该文件应位于windows子目录中;c:\windows\system32c:\windows\SysWOW64。注意:您使用regsvr32注册ocx。

在安装一些Windows更新(包括升级到IE10)和VS2012更新3后,我遇到了相同的问题,但更新已完全安装,并且MSCOMCTL.ocx已通过COM注册。在我发现的另一篇关于这个问题的StackOverflow帖子中,这最终为我解决了这个问题:

以管理员身份运行命令提示符

在64位系统上导航到C:\Windows\SysWOW64,或在32位系统上导航到C:\Windows\system32

执行'regtlib msdatsrc.tlb'(不带引号)

贷记到“自动”:


由于您是搜索此错误时的第一个结果,所以我在此发布。

我的一台生产计算机出现了此问题。这是一台新格式化的电脑,操作系统为Windows XP。在撰写本文期间,我们知道Windows XP不再提供更新。我所做的是,我安装了VB6,因为我可以访问这个软件,之后,我安装了,错误得到了纠正。我必须安装VB6 Enterprise,因为安装service pack需要安装所述IDE时包含的数据。

我有Windows Server 2008 R2(64位),我遇到了相同的问题,我通过了以下步骤:

  • 转到路径C:\Windows\Microsoft.NET\Framework\v4.0.30319
  • 执行'regtlibv12 msdatsrc.tlb'(不带引号)
  • 几年过去了,事情发生了一些变化,在我的windows 7机器上,我需要使用这个:C:\windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe C:\windows\SysWOW64\msdatsrc.tlb