解决VB6.0中不能加载MSCOMCTL.OCX的错误提示
VB6.0毕竟是很古老的开发工具了,其对所使用的第三方组件依赖性比较强,例如在打开从其它电脑上拿来的VB6.0的软件(系统)的工程文件(源代码)时,经常会遇到"不能加载MSCOMCTL.OCX“的错误提示,如图所示:
产生这种问题的可能性很多,例如目标电脑上MSCOMCTL.OCX组件的版本与开发该软件的电脑上的该组件版本不一样(可能性很大);目标电脑上没有该组件;该组件文件已经被破坏或者是不可读等。下面针对低一种可能性给出解决方案(如果是后面的几种可能性,则还需要自己到网上下载或者是到原开发该软件的电脑上复制一个该组件的文件放在指定的文件夹下:32位操作系统放在.\Windows\System32文件夹下,64位操作系统放在.\Windows\SysWOW64文件夹下。然后同样需要按照下面的方法来操作才可以)。
方法一:
在上面的对话框当中一定要点击“是”!然后在下面的对话框当中点击“确定”(该对话框就提示了使用MSCOMCTL.OCX组件的窗体名称,如果后面还有类似的提示,一律点击“确定”):
如果还遇到下面的提示框,一律点击“确定”:
然后打开了工程(源代码),我们可以看到使用了MSCOMCTL.OCX组件的窗体已经变成了这个模样:
而正常情况下该窗体应该是这个模样的(此处以可执行文件的运行截图为例来对比):
由上面两张图对比可以知道,该窗体里面因为MSCOMCTL.OCX组件的加载错误问题,已经让窗体的“工具栏”和“状态栏”等控件都不见了,而再看VB6.0里面的“工具箱”处,发现很多组件的图标都不见了:
这是因为该MSCOMCTL.OCX组件可以为VB6.0提供8种控件(上图中多圈了一个组合框控件了),即:工具栏(Toolbar),状态栏(StatusBar),图像列表(ImageList),选项卡(TapStrip),进度条(ProgressBar),树形框(TreeView),滑动块(Slider),图像组合框(ImageCombo),而打开源代码的时候随着MSCOMCTL.OCX组件的加载失败,自然这些控件的图标也就消失了,对应的窗体里面那些控件也都变成了空白的PictureBox了。
怎么解决这个问题呢?
首先在打开的VB6.0工程里面(即软件的工程里面)一定要关闭所有添加了MSCOMCTL.OCX所提供的控件的窗体(包括代码窗体),否则的话经过下面的步骤保存了以后,那些窗体里面所有之前出问题的控件就被空白的PictureBox替代了。
然后右键点击“工具箱”的空白处,选择“部件”,如图所示:
在打开的窗体里面点击“浏览”按钮:
然后在打开的对话框里面“文件名”处输入完整的“MSCOMCTL.OCX”(或者是输入一部分后从下拉列表里面选择):
然后点击“打开”按钮:
在返回的窗体里面点击“确定”按钮:
此时会发现“工具箱”内那些丢失的控件又“回来了”:
然后关闭VB6.0开发环境,在弹出的对话框里面选择“是”:
然后再开工程文件(源代码)的时候,发现问题已经解决了,没有再弹出加载组件错误的提示了!
方法二:
以上方法可以解决大多数系统环境下所遇到的加载MSCOMCTL.OCX错误的问题,尤其是当操作系统是Windows7或者XP的时候,可以说能很好的解决问题,但是当操作系统是Windows 8(8.1)或者是Windows 10的时候,如果在上述方法当中添加MSCOMCTL.OCX控件的时候遇到了卡死,或者是“访问注册表错误”等的提示,不能继续使用上面的方法解决问题的时候,就需要使用下面的方法来解决问题了。
首先把已经打开的源代码工程(VB6.0开发环境)关闭了(注意:关闭的时候千万不要保存,也就是提示“保存文件的更改”那里一定要选择“否”,否则的话那些出问题的窗体可能就会保存了出问题的状态而无法挽回了)。
然后右键点击后缀名为.vbp的工程文件,选择“打开方式”,然后在打开方式的选项里面如果有“记事本”的话,则选择此项,反之的话选择“选择默认程序(C)”这一项:
然后在打开的窗体里面选择“记事本”,如图所示(如果推荐的程序处没有的话,就在“其他程序”下面寻找):
然后在上图中去掉“始终使用选择的程序打开这种文件”的钩,然后点击“确定”按钮,这样就使用记事本打开了该工程文件,然后点击记事本当中的菜单项 编辑——查找:
在打开的“查找”对话框里面输入“MSCOMCTL.OCX”,然后点击“查找下一个”按钮:
此时可以看到找到的内容左边是“#2.1#0”的样子:
把上面字符串里面的“2.1”修改为“2.0”,然后关闭文档,保存,如图所示:
然后再采用同样的方法修改所有使用了MSCOMCTL.OCX组件提供的控件的窗体里面的内容:右键点击相关的窗体frm文件,选择“打开方式”——“记事本”(或者是没有记事本选项的话,使用“选择默认程序”指定记事本),如图所示:
同样采用记事本里面查找的方法找到“MSCOMCTL.OCX”所在的那一行文本:
此时看到其左边的内容也是“#2.1#0”:
同样把“2.1”修改为“2.0”,然后关闭记事本并保存:
然后再打开工程文件(源代码)看看,这样问题应该解决了,应该不会再弹出那个“不能加载MSCOMCTL.OCX”的提示了。
后续经验:
①在Windows 8(8.1)或者Windows 10系统上打开VB6.0的源代码的时候,经常会遇到弹出很多的错误提示的情况,除了上面所说的那个不能加载MSCOMCTL.OCX的错误提示之外,还可能有不能加载其它组件的错误提示,此时不用管它,一直点击“确定”和“是”,等到完全打开了源代码以后,再关闭了VB6.0软件(千万不要保存),然后再打开的时候可能就什么错误提示也没有了,能全部打开了,所有的组件都正常了(这种情况我已经遇到了很多次,目前还不能解释是什么原因)。
②如果采用了上面的两种方法以后还是不能解决问题,建议:检查在方法二当中,是不是把所有的使用到MSCOMCTL.OCX提供的控件的窗体使用记事本打开以后把里面的“2.1”都修改为“2.0”了?
③如果进行了上面的所有的操作,问题还是不能解决的话,或者是还有其它组件加载错误的提示的话,那多半是安装的VB6.0有问题(或者是在VB6.0的安装过程中被某些诸如360之类的杀毒软件误报阻止而导致很多组件安装失败),此时可以先下载一个VB6.0的SP6升级包安装看看,如果问题依旧,或者是SP6升级包都安装失败了,那就是安装的VB6.0软件有问题,卸载了以后重装VB6.0软件吧(而且通常安装成功了SP6升级包以后可以解决很多除了MSCOMCTL.OCX之外的组件加载错误的问题),下面提供VB6.0的SP6升级包的下载地址(百度网盘):https://pan.baidu.com/s/1kTqgUJd
④有的时候很奇怪,刚开始打开源代码的时候,除了提示MSCOMCTL.OCX加载错误之外,还有其它的很多组件加载错误的提示,但是解决了MSCOMCTL.OCX加载错误的问题以后,其它的组件加载错误的提示也跟着消失了(目前还不知道是什么原因)。
下面提供VB6.0软件的安装方法介绍:https://www.cnblogs.com/rewwensoftware/p/9563117.html
原创性声明:
此文章实属原创,目前仅在本站和瑞文软件的官方网站(地址:https://www.rwrjhao.com/details?article_id=44)发布,请转载的朋友一定要注明本网站本文章的地址或是“瑞文软件”的字样,否则一律按侵权处理,谢谢合作!