重装系统后打开VB工程不能加载Mscomctl.ocx

liaohao0101 2018-11-03 11:47:00
打开工程时提示“不能加载 'E:\MSCOMCTL.OCX'--继续加载工程吗”,加载工程后以前做的progressbar变成了picturebox,在部件里选择Microsoft windows common controls6.0提示“名称与已存在的模块、工程或对象冲突”。
...全文
245 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaohao0101 2018-11-08
  • 打赏
  • 举报
回复
系统重做了问题解决,不知道是哪里出的问题。谢谢楼上各位老大的回答。
嗷嗷叫的老马 2018-11-06
  • 打赏
  • 举报
回复
用记事本打开VBP文件,看看这个控件CLSID后面的版本号是不是2.1

如果是,改为2.0再保存VBP,看看能否打开.

有时候是因为系统中安装了OFFICE之类软件,把控件强制升级了.
舉杯邀明月 2018-11-06
  • 打赏
  • 举报
回复
你们都忽略了一个“重要事实”啊:

  楼主“新建的空白工程”,竟然无法把那个控件加到工程中去!

这会是“GUID”或“CLSID”错误的原因吗?
舉杯邀明月 2018-11-05
  • 打赏
  • 举报
回复
引用 12 楼 chewinggum 的回复:
1、新建一个工程,引用common control 6,在窗体里面拖一个实例,然后保存
2、用文本编辑器打开新工程的VBP文件,找文件头里对common control6声明里的guid,拷贝下来。然后同样的用文本编辑器打开你的工程,替换掉原来的,保存(之前记着备份)。

你的方法1,我已经给楼主说了,但是他那儿仍然无法解决。
他是连控件都“加”不进去,你看看6楼最后那个图片,
  出现那种“错误”是个很诡异的现象。

因此,你这儿说的“方法2”是根本不现实的,原因不是GUID错误。
脆皮大雪糕 2018-11-05
  • 打赏
  • 举报
回复
1、新建一个工程,引用common control 6,在窗体里面拖一个实例,然后保存
2、用文本编辑器打开新工程的VBP文件,找文件头里对common control6声明里的guid,拷贝下来。然后同样的用文本编辑器打开你的工程,替换掉原来的,保存(之前记着备份)。
舉杯邀明月 2018-11-05
  • 打赏
  • 举报
回复
引用 14 楼 chewinggum 的回复:
[quote=引用 13 楼 Chen8013 的回复:]
[quote=引用 12 楼 chewinggum 的回复:]
1、新建一个工程,引用common control 6,在窗体里面拖一个实例,然后保存
2、用文本编辑器打开新工程的VBP文件,找文件头里对common control6声明里的guid,拷贝下来。然后同样的用文本编辑器打开你的工程,替换掉原来的,保存(之前记着备份)。

你的方法1,我已经给楼主说了,但是他那儿仍然无法解决。
他是连控件都“加”不进去,你看看6楼最后那个图片,
  出现那种“错误”是个很诡异的现象。

因此,你这儿说的“方法2”是根本不现实的,原因不是GUID错误。
[/quote]

这不是两个方法,而是两个步骤。
曾经用这个办法解决过类似的问题。
可以试试。


还有就是据说有根治的方法,个人没试过:
cmd下
32位系统:cd C:\Windows\System32
64位系统:cd C:\Windows\SysWOW64

执行下面两句
regsvr32 MSCOMCTL.OCX
regtlib msdatsrc.tlb

需要注意的是,regtlib.exe这个文件,system32下是否存在,如果没有,需要去网上下载一个。[/quote]
就算你的是“两个步骤”吧……
但你的“第1步”在楼主那儿就无法完成,那么你的“第2步”也无从谈起。


更何况你说的“根治”方法,按我给楼主说的方法做,自然就解决了。
不过“楼主解决不了”,我还真说不清楚是怎么回事。
只能说,他那种是“意外的特例”而已。
感觉是他的“系统问题”的可能性比较大。


脆皮大雪糕 2018-11-05
  • 打赏
  • 举报
回复
引用 13 楼 Chen8013 的回复:
[quote=引用 12 楼 chewinggum 的回复:]
1、新建一个工程,引用common control 6,在窗体里面拖一个实例,然后保存
2、用文本编辑器打开新工程的VBP文件,找文件头里对common control6声明里的guid,拷贝下来。然后同样的用文本编辑器打开你的工程,替换掉原来的,保存(之前记着备份)。

你的方法1,我已经给楼主说了,但是他那儿仍然无法解决。
他是连控件都“加”不进去,你看看6楼最后那个图片,
  出现那种“错误”是个很诡异的现象。

因此,你这儿说的“方法2”是根本不现实的,原因不是GUID错误。
[/quote]

这不是两个方法,而是两个步骤。
曾经用这个办法解决过类似的问题。
可以试试。


还有就是据说有根治的方法,个人没试过:
cmd下
32位系统:cd C:\Windows\System32
64位系统:cd C:\Windows\SysWOW64

执行下面两句
regsvr32 MSCOMCTL.OCX
regtlib msdatsrc.tlb

需要注意的是,regtlib.exe这个文件,system32下是否存在,如果没有,需要去网上下载一个。
舉杯邀明月 2018-11-04
  • 打赏
  • 举报
回复
首先“以管理员身分运行”运行VB6,新建一个标准EXE工程,
 然后“添加控件”把 "Microsoft windows common controls6.0”添加到工程中。
现在,可以“移除工程”了(也不需要“保存”刚才这个工程)。

再然后,你再打开之前“打开出错”的工程试试……
舉杯邀明月 2018-11-04
  • 打赏
  • 举报
回复
引用 2 楼 milaoshu1020 的回复:
以我的经验,如果是xp升级到win7的话,那么这个Microsoft windows common controls控件6.0版本应该是不能用了,只能用5.0代替.


你是根本没有用过 VB6吧!

舉杯邀明月 2018-11-04
  • 打赏
  • 举报
回复
引用 3 楼 liaohao0101 的回复:
[quote=引用 1 楼 Chen8013 的回复:]
首先“以管理员身分运行”运行VB6,新建一个标准EXE工程,
 然后“添加控件”把 "Microsoft windows common controls6.0”添加到工程中。
现在,可以“移除工程”了(也不需要“保存”刚才这个工程)。

再然后,你再打开之前“打开出错”的工程试试……

用管理员身份创建工程添加这个控件的时候还是提示“名称与已存在的模块、工程或对象冲突”[/quote]

新建的是一个“空白工程”,它不可能与任何“第三方组件”有冲突!


你在“新建工程”后,截几张图片来看看:
1. 工程→引用 ,把列表中“打钩”的那一部分截出来。
  如果只有3个“Visual Basic . . . ”开头的和1个“OLE Auto..... ”,
    那就不用截图,只需要陈述一下这个“事实”即可。

2. 添加控件时,你选定“Microsoft windows common controls 6.0”控件(注意“高亮”此行),
   把这个“添加控件”的操作窗口部分截下来,我要看看它的文件名和路径。
  另外你自己按“文件路径”找到这个文件,看看文件属性,
  需要确认的是“常规”中的文件大小,和“详细信息”中的版本信息、出自哪个“公司”等。

3. 你在添加“Microsoft windows common controls 6.0”控件后,你说的这个“错误提示”。
liaohao0101 2018-11-04
  • 打赏
  • 举报
回复
引用 1 楼 Chen8013 的回复:
首先“以管理员身分运行”运行VB6,新建一个标准EXE工程,  然后“添加控件”把 "Microsoft windows common controls6.0”添加到工程中。 现在,可以“移除工程”了(也不需要“保存”刚才这个工程)。 再然后,你再打开之前“打开出错”的工程试试……
用管理员身份创建工程添加这个控件的时候还是提示“名称与已存在的模块、工程或对象冲突”
milaoshu1020 2018-11-04
  • 打赏
  • 举报
回复
以我的经验,如果是xp升级到win7的话,那么这个Microsoft windows common controls控件6.0版本应该是不能用了,只能用5.0代替.
liaohao0101 2018-11-04
  • 打赏
  • 举报
回复
好的我再试一下,谢谢!
舉杯邀明月 2018-11-04
  • 打赏
  • 举报
回复
你不如尝试先卸载VB,然后重新安装一下VB试试,这样“成本”低点。


不知道你的VB是什么版本,注意最好找“SP6”的版本,
 因为我看你安装后 MSCOMCTL.OCX 的版本,怀疑你的VB6不是带“SP6”的。
舉杯邀明月 2018-11-04
  • 打赏
  • 举报
回复

liaohao0101 2018-11-04
  • 打赏
  • 举报
回复
按照你的方法试了还是不行,升级成6.1.95.45版本的试了也不行。实在不行的话可能要重装系统。
舉杯邀明月 2018-11-04
  • 打赏
  • 举报
回复
那还真是怪事了。


不知道你这个安装包是哪来的。
我发现你的这个“版本”不是新的(就算如此也不应该有这“冲突”啊)。

建议你更新一下,先在网上找到这个的新版本:

文件大小:1.02 MB (1077336 字节)
产品版本:6.01.9545


如果找到了,再“升级”一下;找不到,那就呵呵了……(当然,我也可以提供这个文件给你)

(需要“以管理员身分运行”打开命令行操作):
1. 先卸载当前控件(要把VB6关闭了,同时不要有其它“使用”到这个控件的程序运行),
  执行如下几条命令:
 cd c:\windows\syswow64
 regsvr32 /u mscomctl.ocx

2. 上面的“反注册”操作成功,就删除文件。
 del mscomctl.ocx
 del mscomctl.oca
  这儿“第2个文件”提示没找到也不用管它,也许在你的电脑中还真没这个文件。
  当然,就算“反注册”提示操作失败,也可以进行“强制升级”操作。

3. 注册新文件。
  先把你下载到的 mscomctl.ocx 复制到syswow64目录(就是上面图片中那个路径,别搞错位置了)
  然后执行注册操作:
 regsvr32 mscomctl.ocx
  执行上面这条命令,应该提示“成功”。
  当然具体内容是很长一串,末尾部分有中文的“成功”或者英文的 success 这个词。

升级成功后,再按我上面说的方法,在“新建工程”中试试。
liaohao0101 2018-11-04
  • 打赏
  • 举报
回复
1.确认过了和你叙述的是一致的。 2.

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧