VB6 MSCOMCTL.OCX 无法在 Windows 7 上加载问题

VB6 MSCOMCTL.OCX not loading issues on Windows 7

我在 VB6 中遇到 MSCOMCTL.OCX 的奇怪问题。

我想这可能是我试图安装一些旧的与雕刻机通信的软件引起的。由于缺少 OCX 文件,安装仅部分成功。虽然该应用程序已列在程序文件中,但加载时只有部分功能可用。

当我接下来尝试打开一个 VB6 项目时,它显示了关于无法加载的错误 MSCOMCTL.OCX。 VB6 以前可以正常工作,没有任何问题。起初我以为雕刻工具安装损坏了一些文件,所以我重新安装了 VB6 和 Service Pack 6,但这并没有解决问题。相反,错误消息说“无法加载”。

我在此处 post 浏览了论坛 VB6 IDE cannot load MSCOMCTL.OCX after update KB 2687323 and here Object Library Not Registered When Adding Windows Common Controls 6.0,但 none 的解决方案 post 有效。

我设法卸载了雕刻软件,再次安装了 VB6(加上一些尝试重新注册 dll)并设法打开了一个项目。该项目肯定在组件中选择了 Microsoft Window Common Controls 6。问题是这是我唯一可以打开的项目。所有其他项目都因错误“无法加载”而失败。即使开始一个新项目也会在选择 Microsoft Windows Common Controls 6.

时出现错误“无法加载”

我查看了项目文件和对 MSCOMCTL.OCX 的引用,在有效的项目和不有效的项目中:

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

有人可以帮我让 VB6 重新工作吗?有谁知道为什么单个项目可以加载 MSCOMCTL.OCX 没有任何问题,但所有其他项目,包括全新的项目,都会抛出错误?

编辑:奇怪的是,在最初 post 之后很久,这个问题就被标记为可能重复。在我对下面的答案的评论中,我特别说我尝试了作为该问题的答案提出的解决方案,但它没有用。

您确定工作项目和非工作项目中的引用相同吗?尝试更改对以下内容的引用

Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX

刚刚在您对 2.0 的引用中更改了 2.1。这适用于我的环境。也许这就是有效项目和无效项目之间的区别。参考文献中的细微差异很容易被忽略。

我通过执行系统还原到安装问题应用程序之前设法让 VB6 工作。在发布我的问题之前,我确实尝试过这个,但是我在让系统恢复工作时遇到了一个单独的问题,它说它无法访问文件并回滚任何更改。