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的时候,可以说能百分之百的解决问题,但是当操作系统是Windows8(8.1)或者是Windows10的时候,如果在上述方法当中添加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”的提示了。

后续经验:

①在Windows8(8.1)或者Windows10系统上打开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升级包的下载地址(百度网盘):http://pan.baidu.com/s/1kTqgUJd

④有的时候很奇怪,刚开始打开源代码的时候,除了提示MSCOMCTL.OCX加载错误之外,还有其它的很多组件加载错误的提示,但是解决了MSCOMCTL.OCX加载错误的问题以后,其它的组件加载错误的提示也跟着消失了(目前还不知道是什么原因)。

下面提供VB6.0软件的安装方法介绍:https://www.cnblogs.com/rewwensoftware/p/9563117.html

注:本博客内所有的文章均为原创,欢迎转载,但转载时请注明“瑞文软件”的字样,谢谢!

解决VB6.0中不能加载MSCOMCTL.OCX的错误提示的更多相关文章

  1. Win7下VB6.0不能加载mscomctl.ocx的解决办法

    下载这个:http://pan.baidu.com/s/1sjJgrbJ 然后在命令框下注册这个组件: regsvr32 mscomctl.ocx 即可

  2. VB 6.0不能加载MSCOMCTL.OCX的解决方法

    问题场景:打开 VB 6项目时报错,不能加载 'C:\WINDOWS\system32\MSCOMCTL.OCX'--继续加载工程吗? 解决方法: 1.新建一个VB工程,然后按CTRL + T,选中  ...

  3. 64位win7系统中vb工程显示加载MSCOMCTL.OCX失败

    MSCOMCTL.OCX明明已经注册成功,但还是提示加载失败,对象未注册 尝试过的方法:system32中注册,syswow64中注册,vb打sp6补丁, 修改工程文件:用记事本打开VBP文件找到这一 ...

  4. VB6加载MSCOMCTL.OCX出现“不能加载''”错误的处理方法汇总

    自从我安装卸载几次OFFICE和WPS后,VB6就出现了这样的问题. 然后在网上收集各种解决办法: 1.第一种:工程文件引用可能有问题,跟本机的相关组件版本不一致. 用记事本打开VBP文件找到这一行: ...

  5. 加载MSCOMCTL.OCX错误处理的几个关键

    一.工程文件说明,两个版本Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCXObject={831FDD16-0C5C- ...

  6. VB打开工程时出现不能加载MSCOMCTL.OCX

    用记事本打开VBP文件找到这一行:Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX改为:Object={831FDD1 ...

  7. 解决Asp.net中的Chart控件运行出现错误提示“ ChartImg.axd 执行子请求时出错”

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABTkAAAJwCAIAAADN5fIdAAAgAElEQVR4nOzdfZAc1X3o/VNFlbcoJf

  8. win7 下加载MSCOMCTL.OCX

    cd C:\Windows\System32"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regtlibv12.exe" msd ...

  9. iOS 解决LaunchScreen中图片加载黑屏问题

    iOS 解决LaunchScreen中图片加载黑屏问题 原文: http://blog.csdn.net/chengkaizone/article/details/50478045 iOS 解决Lau ...

随机推荐

  1. Ajax初始接触

    演示JS对象的属性,方法和事件的使用 (1)window.location.href (2)form.submit() <form action="" method=&quo ...

  2. 18-hadoop-weather案例

    weather案例, 简单分析每年的前三个月的最高温即可, 使用自定义的分组和排序 设计分析 设定多个reduce 每年的数据都很多,如果按照默认情况处理,统计性能是非常慢(因为默认只有一个reduc ...

  3. php 通过 strtr 方法来替换文本中指定的内容

    通过在文本中指定待替换的内容,如: [{name}] [{age}] 格式可以自己定义, 大概过程: 在文本中定义需要替换的文本内容: 以键值对的方式 组织数据(数组): 用 file_get_con ...

  4. Java NIO 进程间通信

    转自:http://blog.csdn.net/lingzhm/article/details/45026119 传统的进程间通信的方式有大致如下几种: (1)   管道(PIPE) (2)   命名 ...

  5. 利用https实现站点的访问

    简介 它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果.HTTPS实际上应用了Netscape的安 全套接字层(SSL)作为HTTP应用层的子层.( ...

  6. POJ 2234 Matches Game (尼姆博弈)

    题目链接: https://cn.vjudge.net/problem/POJ-2234 题目描述: Here is a simple game. In this game, there are se ...

  7. syslog - 日志文件详解

    日志文件,是linux最为重要的记录文件,记录着日常的操作. 我们在linux编程的时候,通常会使用日志文件记录操作和信息,日志系统提供了我们几个API接口供调用 1. API void openlo ...

  8. Dockerfile构建镜像

    Dockerfile构建镜像的步骤: 从基础镜像运行一个容器 执行一条指令,对容器做出修改 执行类似docker commit的操作,提交一个新的镜像层 再基于刚提交的镜像运行一个新的容器 执行Doc ...

  9. 4.3.6 对象的界定通过编写接口来访问带这类命名结构的表会出问题。如前所述,SQL Server的灵活性不应用作编写错误代码或创建问题对象的借口。 注意在使用Management Studio的脚本工具时,SQL Server会界定所有的对象。这不是因为这么做是必须的,也不是编写代码的最佳方式,而是因为在界定符中封装所有的对象,比编写脚本引擎来查找需要界定的对象更容易。

    如前所述,在创建对象时,最好避免使用内嵌的空格或保留字作为对象名,但设计人员可能并没有遵守这个最佳实践原则.例如,我当前使用的数据库中有一个审核表名为Transaction,但是Transaction ...

  10. 设计模式学习总结(一)——设计原则与UML统一建模语言

    一.概要 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结. 使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计 ...