1

我有一个 VB 项目能够正常工作,但现在当我打开项目时,我收到 mscomctl.ocx 的错误。我已经重新注册了 ocx,但仍然无法加载项目。

我该如何解决这个问题?

4

8 回答 8

3

当我在 Windows 7 64 位环境中打开项目时遇到了这个问题,它在 win XP 机器上正常工作。我之前在项目文件中做了一个非常简单的更改,它说

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

我改成2.12.0因为我在许多论坛上都看到过它,而且它很有魅力。VBP文件中更新的参考是

Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
于 2013-06-20T15:39:32.840 回答
1

在我看来,您的项目已经失去了对 ocx 的引用(虽然它仍然尝试使用一些控件)

在 ide 的“项目”菜单中单击“组件”

在列表中确保选中“microsoft windows common controls 6.0 (sp6)”...如果已经选中,请尝试删除它,关闭(并保存)项目,打开项目,然后再次打开它

于 2012-12-20T06:32:10.433 回答
1

当我的 Windows 7 32 位笔记本电脑崩溃并且公司用 64 位机器替换它时,我遇到了类似的问题......首先我尝试使用 regsvr32 注册 .ocx - 在 32 位机器上它会不时被卸载。 ..这在翻新的64位机器上根本不起作用...

我尝试更改 .vbp 文件设置,如之前的一些响应中所述,但没有成功...我将 .vbp 设置回 2.0,后来在另一个问题上,我正在搜索注册表并决定搜索 mscomctl.ocx 并找到 3键 - 2.0、2.1 和 2.2...因为它不起作用,我决定删除 2.1 和 2.2 键,瞧!控件加载没有问题。显然 .vbp 和注册表必须匹配。

于 2016-05-25T01:12:02.047 回答
1

我有同样的问题。user1272267 回答有效(谢谢),但令我困扰的是我不明白为什么,我也不确定我是否最终会为我的同事打破这个项目,因为它工作得很好。

所以我做了更多的挖掘,发现在注册表中有一个键;reg hkcr\typelib{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}\2.0(注意2.0)

我将 2.0 更改为 2.1,嘿,一切正常。我还检查了 DLL,结果发现我的副本比我同事的副本旧。我认为这可能是因为当我安装 Service Pack 6 时,我保留了一些原始文件,因为替换文件是针对美式英语的,而我有英国版,但我不能 100% 确定这一点

于 2015-12-10T14:56:14.643 回答
0

我有同样的错误。这两件事对我有用:

  • 通过右键单击以管理员身份运行来启动 Visual Studio 6

或者

  • 禁用 UAC 提示。

希望能帮助到你。

于 2013-03-29T20:20:55.497 回答
0

您还可以在记事本中打开项目文件(.vbp 文件),您会看到如下内容:

Type=Exe
Form=frmComFX.frm
Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\Windows\SysWOW64\stdole2.tlb#OLE Automation
Object={648A5603-2C6E-101B-82B6-000000000014}#1.1#0; MSCOMM32.OCX
Object={5E9E78A0-531B-11CF-91F6-C2863C385E30}#1.0#0; MSFLXGRD.OCX
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
Form=frmSetup.frm
Module=modFX; modFX.bas
IconForm="frmComFX"
Startup="frmComFX"
HelpFile=""
Title="ComFX"
Command32=""
Name="comFX"

以 'object-' 开头的行包含注册 ocx 的注册表项...您现在可以打开 regedit(开始 - 执行 - regedit)并搜索此键.. 请注意您在 regedit 中所做的事情,你可能会搞砸你的 Visual Basic 安装,甚至你的整个 Windows :)

当然,您也可以删除 Visual Basic 并重新安装它以恢复注册

于 2012-12-20T06:39:21.947 回答
0

尝试重新注册MSCOMCTL.OCX

  1. 下载文件:http ://www.ocxdump.com/ocxfiles/M/MSCOMCTL.OCX
  2. 将其复制到位置c:\windows\system32\
  3. 打开命令提示符并运行:

    cd c:\windows\system32
    regsvr32 MSCOMCTL.OCX
    

比尝试再次运行您的应用程序。

于 2012-12-19T09:25:51.180 回答
0

视窗 7 64 位;刚刚安装了 VS6 和 VS6 SP6(有困难)但是我的 Win XP 项目给出了“无法加载 MSCOMCTL.OCX”错误。

我发现 Nathan Hadley 的回答给了我线索并允许我打开项目......我的项目的 userinterface.vbp 文件(从 Win XP 复制)在 MSCOMCTL.OCX 参考旁边有 #2.2,但我的注册表类 id 有只有2.1。所以我将我的 userinterface.vbp 条目更改为 2.1,项目打开正常。

但是第二天我再次运行了 VB6 SP6 累积更新 VB60SP6-KB2708437-x86-ENU(可能第一次没有正确安装),现在我在注册表中有 2.2 版。所以我改回了我的 userInterface.vbp 文件,所以 OCX 引用再次具有#2.2,现在项目仍然正确打开并且一切运行正常。

于 2016-01-23T20:43:12.487 回答