无法打开VB项目,无法加载错误“C:\ windows \ system32 \ mscomctl.ocx”

时间:2012-12-19 09:11:37

标签: windows vb6

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

如何解决此问题?

8 个答案:

答案 0 :(得分:3)

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

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

我将2.1更改为2.0,因为我在许多论坛中都看到过它,它就像魅力一样。 VBP文件中的更新参考是

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

答案 1 :(得分:1)

我遇到了同样的问题。 user1272267回答工作(谢谢),但让我感到困扰的是我不明白为什么,我也不确定我是否最终会为那些工作正常的同事打破这个项目。

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

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

答案 2 :(得分:0)

尝试重新注册MSCOMCTL.OCX

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

    cd c:\windows\system32
    regsvr32 MSCOMCTL.OCX
    
  4. 尝试再次运行您的应用程序。

答案 3 :(得分:0)

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

点击ide

中“项目”菜单中的“组件” 列表中的

确保“microsoft windows common controls 6.0(sp6)”被检查......如果已经检查过,请尝试删除它,关闭(并保存)项目,打开项目,然后重新打开< / p>

答案 4 :(得分: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(start - execute - regedit)并搜索此密钥..请小心,不过你做了什么在注册表中,您可能会搞砸视觉基本安装甚至完整的窗口:)

当然你也可以删除visual basic并重新安装以获得注册

答案 5 :(得分:0)

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

  • 右键单击“以管理员身份运行”
  • 启动Visual Studio 6

  • 禁用UAC提示。
希望它有所帮助。

答案 6 :(得分:0)

Windows 7 64位;刚刚安装了VS6和VS6 SP6(有困难)但我的Win XP项目给了#34; MSCOMCTL.OCX无法加载&#34;错误。

我发现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,现在项目仍然正常打开,所有运行正常。

答案 7 :(得分:0)

当我的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和注册表必须匹配。