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

0aydgbwb  于 2023-06-07  发布在  Windows
关注(0)|答案(8)|浏览(408)

我有一个VB项目能够工作没有任何问题,但现在当我打开该项目我得到的错误与mscomctl.ocx。我已经重新注册了ocx,但仍然无法加载项目。
如何解决这个问题?

vybvopom

vybvopom1#

当我在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
tzcvj98z

tzcvj98z2#

在我看来,你的项目已经失去了对ocx的引用(尽管它仍然试图使用一些控件)
在ide的“项目”菜单中点击“组件”
在这列表中确定'微软 windows 公用控制6.0(sp6)'被检查...如果它已经是,尝试删除它,关闭(并保存)项目,打开项目,然后再次打开它

mbzjlibv

mbzjlibv3#

我也有同样的问题。user 1272267的答案工作(谢谢),但它困扰着我,我不明白为什么,我也不确定我是否会最终打破了我的同事谁它工作的罚款项目。
所以我做了更多的挖掘,发现在注册表中有一个关键; reg hkcr\typelib{831 FDD 16 - 0 C5 C-11 D2-A9 FC-0000 F8754 DA 1}\2.0(注意2.0)
我把2.0改成了2.1,嘿,一切都很好。我还检查了DLL,结果发现我的副本比我同事的副本旧。我想这可能是因为当我安装服务包6我保留了一些原始文件时,问,因为更换文件是为美国英语和我有英国版本,但我不是100%肯定这一点

5ssjco0h

5ssjco0h4#

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

vktxenjb

vktxenjb5#

我也犯了同样的错误。这两件事对我很有效:

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

  • 禁用UAC提示。

希望对你有帮助。

nfeuvbwi

nfeuvbwi6#

尝试重新注册MSCOMCTL.OCX
1.下载文件:http://www.ocxdump.com/ocxfiles/M/MSCOMCTL.OCX
1.复制到位置c:\windows\system32\
1.打开命令提示符并运行以下命令:

cd c:\windows\system32
regsvr32 MSCOMCTL.OCX

请尝试再次运行应用程序。

zysjyyx4

zysjyyx47#

Windows 7 64位;刚刚安装了VS 6和VS 6 SP 6(有困难),但我的项目从Win XP给出了“MSCOMCTL.OCX无法加载”错误。
我发现内森·哈德利的回答给了我线索,让我打开了这个项目。我的项目的userinterface.vbp文件(从WinXP复制)在MSCOMCTL.OCX引用旁边有#2.2,但我的注册表类ID只有2.1。所以我把我的userinterface.vbp条目改成了2.1,项目打开了。
然而,第二天我再次运行VB 6 SP 6累积更新VB 60 SP 6-KB 2708437-x86-ENU(可能第一次没有正确安装),现在我在注册表中有2. 2版本。所以我把userInterface.vbp文件改回来了,所以OCX参考文件又有了#2.2,现在项目仍然可以正确打开,所有的运行都正常。

nmpmafwu

nmpmafwu8#

你也可以在记事本中打开项目文件(.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中所做的事情,你可能会搞砸你的visual basic安装,甚至你的整个windows:)
当然,你也可以删除visual basic并重新安装它以恢复注册

相关问题