自从我安装卸载几次OFFICE和WPS后,VB6就出现了这样的问题。
然后在网上收集各种解决办法:
1、第一种:工程文件引用可能有问题,跟本机的相关组件版本不一致。
用记事本打开VBP文件
找到这一行:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX
改为:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
保存即可
打开我的工程文件,发现本来就是2.0的,这种方法就没有任何用武之地了。
2、第二种:MSCOMCTL.OCX文件本身被破坏。
在网上下载或者从一台不存在问题的机器上复制一个MSCOMCTL.OCX替换System32目录下的文件并注册之。发现根本没有作用。
3、第三种:跟MSCOMCTL.OCX相关联的库文件被破坏了。
安装VB6的SP6补丁,无效。
安装不同版本的VB6,也是无果。
卸载WPS、OFFICE2007、OFFICE2010等,安装OFFICE2003并打上SP3补丁。无效。
到这里,我快要疯了,难道真的要冲新安装WINDOWS?!于是就不理他了,避免用这个控件组就行了。或者直接用虚拟机开发。心灰意冷了。默默地想了很多办法,自己去写个这个组件相关的控件........
偶然的一天,没事看看各种论坛,翻开一页又一页古老的帖子,忽然发现了一条神回复。
4、第四种:注册表项的问题。
注册表的831FDD16-0C5C-11D2-A9FC-0000F8754DA1 主键下有2.0 和2.1两个版本,删除2.1版本这项。
真的可以!