WIN7系统VB6引用部件MSCOMCTL.OCX不能加载

simaqingtian 2013-09-04 11:37:54
我的win7系统,以前用VB6好好的,后来因为其他原因重装了win7系统,现在引用部件MSCOMCTL.OCX不能加载
以前系统是大地的,现在是深度的,不知道有没有影响
【试过以下方法均无效】:
##网上下载了多个MSCOMCTL.OCX重新注册成功,但加载还是失败
有些注册后引用部件干脆提示未注册
##重装vb6sp6
##用记事本打开VBP文件, 找到这一行:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX
改为:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
##卸载了系统自带的OFFICE2003

...全文
27302 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
six_h2008 2016-04-10
  • 打赏
  • 举报
回复
大家讨论的结果如何?
qq_30154763 2015-07-27
  • 打赏
  • 举报
回复
开始 运行 regsvr32 "c:\windows\syswow64\MSMAPI32.ocx" 其中星号部分为你的控件的存储位置,可以通过点击该该事件来产生该控件的存储地址,当然这是win7 64位的, 不同版本不一样
风铃同学 2015-07-05
  • 打赏
  • 举报
回复
引用 39 楼 mapaler 的回复:
[quote=引用 21 楼 huhis1 的回复:] 装了 Vs6sp6.exe 装了 VB60SP6-KB2708437-x86-CHS 这个,还是没解决。 ----------------------------------------------------- 在64-bit 系统: cd C:\Windows\SysWOW64 regtlib msdatsrc.tlb 提示没有这个命令 regtlib ------------------------------------------------ 管理员权限下 命令窗口分别两个文件夹下 system32 syswow64 regsvr32 mscomctl.ocx , 依然无效。 管理员权限下 打开VB6.0 ,部件添加也不行。 ============================ 真的快疯了。
虚拟机里新装的32位Win7用Everything在Windows文件夹下找到了REGTLIB.exe,执行后成功打开控件。 但是在真实系统没找到,但是找到了这两个文件 "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regtlibv12.exe" "C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe" 于是执行这样就成功了。
cd C:\Windows\System32
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regtlibv12.exe" msdatsrc.tlb
cd C:\Windows\SysWOW64
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe" msdatsrc.tlb
那个6.8MB的精简版VB6也成功了(控件是以前从完整版VB6留下来的) [/quote] 解决了
x287634334 2015-06-15
  • 打赏
  • 举报
回复
我使用网上下载的替换了,然后regsvr32注册一下就可以了。
舉杯邀明月 2015-06-12
  • 打赏
  • 举报
回复
引用 40 楼 w1w2w33 的回复:
谢谢! guobin1014, 试几十种方法,还是 guobin1014 的办法管用, 我的机器 regtlib.exe 在C:\windows 里面
几十种方法?太夸张了吧! 我知道就一个方法“鼠标右键→以管理员身份运行”,啥问题都轻松搞定了。 (只需要在第一次的时候用这方法,之后以标准账户权限启动VB6也能正常加载该控件了。) 真不明白怎么有那么多人总说有问题。
w1w2w33 2015-06-11
  • 打赏
  • 举报
回复
谢谢! guobin1014, 试几十种方法,还是 guobin1014 的办法管用, 我的机器 regtlib.exe 在C:\windows 里面
枫谷剑仙 2015-06-03
  • 打赏
  • 举报
回复
引用 21 楼 huhis1 的回复:


装了 Vs6sp6.exe
装了 VB60SP6-KB2708437-x86-CHS 这个,还是没解决。
-----------------------------------------------------

在64-bit 系统:
cd C:\Windows\SysWOW64
regtlib msdatsrc.tlb
提示没有这个命令 regtlib
------------------------------------------------
管理员权限下 命令窗口分别两个文件夹下 system32 syswow64 regsvr32 mscomctl.ocx , 依然无效。
管理员权限下 打开VB6.0 ,部件添加也不行。
============================
真的快疯了。


虚拟机里新装的32位Win7用Everything在Windows文件夹下找到了REGTLIB.exe,执行后成功打开控件。
但是在真实系统没找到,但是找到了这两个文件
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regtlibv12.exe"
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe"

于是执行这样就成功了。
cd C:\Windows\System32
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regtlibv12.exe" msdatsrc.tlb
cd C:\Windows\SysWOW64
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12.exe" msdatsrc.tlb

那个6.8MB的精简版VB6也成功了(控件是以前从完整版VB6留下来的)
随风而行lulu 2015-05-10
  • 打赏
  • 举报
回复
引用 16 楼 guobin1014 的回复:
不知道今天还有没有人想要知道这个问题的答案。。。但是我确实找到了答案,希望可以帮到有需要的人: 管理员权限运行命令提示符然后: 32-bit系统 cd C:\Windows\System32 再运行: regtlib msdatsrc.tlb 在64-bit 系统: cd C:\Windows\SysWOW64 regtlib msdatsrc.tlb
可用。同时要使用1046KB大小的那个MSCOMCTL.OCX
随风而行lulu 2015-05-10
  • 打赏
  • 举报
回复
百度 VB6 MSCOMCTL,一大堆对象库未注册的。我也是其中的苦逼者,VBA能用,VB6不能用,蛋疼死。
天冰天降 2015-04-17
  • 打赏
  • 举报
回复
引用 16 楼 guobin1014 的回复:
不知道今天还有没有人想要知道这个问题的答案。。。但是我确实找到了答案,希望可以帮到有需要的人: 管理员权限运行命令提示符然后: 32-bit系统 cd C:\Windows\System32 再运行: regtlib msdatsrc.tlb 在64-bit 系统: cd C:\Windows\SysWOW64 regtlib msdatsrc.tlb
在64-bit 系统: cd C:\Windows\SysWOW64 regtlib msdatsrc.tlb 家庭版 win764 解决问题。 真是无语
tin2 2015-01-07
  • 打赏
  • 举报
回复
这才是正解
引用 16 楼 guobin1014 的回复:
不知道今天还有没有人想要知道这个问题的答案。。。但是我确实找到了答案,希望可以帮到有需要的人: 管理员权限运行命令提示符然后: 32-bit系统 cd C:\Windows\System32 再运行: regtlib msdatsrc.tlb 在64-bit 系统: cd C:\Windows\SysWOW64 regtlib msdatsrc.tlb
flydog嵌入式 2014-12-12
  • 打赏
  • 举报
回复
刚刚解决了这个问题,特地发上来:
我的问题与楼主几乎是一样的。
系统:Win7
Office:2010.
VB 6 已经安装补丁以及试过各种方法,均未能凑效。

我的思路:有人说是安装了OFFICE后,OFFICE导致。那么问题来了,OFFICE自身的VBA是否能正常使用这个OCX呢?所以可以从这里入手。如果VBA都不能 ,那么再说。
Step1:验证VBA是否能正常加载MSCOMCTL.ocx。随意打开一个Excel文档,进入VBA开发模式。新建一个窗体,显示出“工具箱”。上面显示的是最原始的那些控件,如按钮,文本框之类的。好,现在是关键部分。在“工具”-“附加控件”中,试图添加TreeView(由MSCOMCTL.ocx支持的),看是否能添加成功。
上图是我这边已经添加成功的情况。
如果添加成功,则试图在UserForm1中拉出这个TreeView。

好了,现在是否能够画出这个控件?如果不能画出,则继续看Step2。否则,本回答不适合你的情况,请不用看了。
Step2:到了这里,既然VBA自己都有问题,那么,是否有工具去修复这个问题呢。谁挖的坑谁来填。现在请出Office中的这个工具:
运行。大概需要几分钟。最后,会报告修复了什么内容。我这边是修复了一项内容。这个是关键,即极有可能已经修复了Step1中出现的问题。
Step3:回到VBA,重复Step1中的尝试。看是否能画出TreeView。如果能画出,则说明问题已经解决大半。否则,不用往下看了。
Step4:回到VB6。新建一个工程,新添加MSCOMCTl控件,看是否能顺利添加。如果可以,基本楼主的问题可以解决,否则,那就是别的复杂原因了。

个人真实操作,希望为此困扰的小伙伴提供借鉴。

楚狂歌 2014-12-10
  • 打赏
  • 举报
回复
一般都是新系统才有这个问题,用久了的系统大都打了补丁,所以不会遇到。 哇咔哇咔,感谢我吧
楚狂歌 2014-12-10
  • 打赏
  • 举报
回复
这个问题也遇到过,安装SP6各种方法都不行,当时把系统补丁全部打到最新就okL
laewilson 2014-12-09
  • 打赏
  • 举报
回复
怎么知道一个exe或者dll文档是32位,还是64位?
赵4老师 2014-12-09
  • 打赏
  • 举报
回复
引用 30 楼 u012754182 的回复:
怎么知道一个exe或者dll文档是32位,还是64位?
使用PE Browse Professional软件查看exe或dll
pipi20091001 2014-09-13
  • 打赏
  • 举报
回复
我也曾经遇到过,跟VB6版本没关系,应该是OCX的问题!
  • 打赏
  • 举报
回复
只是遇到过控件未注册,解决办法也挺简单的,在引用那里会显示缺失控件的位置,点击预览-然后找到那个缺失的文件-打开,就可以了。如果文件夹没有的话就在网上下载一个,放在那个指定的文件夹,然后再根据上述操作就可以了
赵4老师 2014-07-11
  • 打赏
  • 举报
回复
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
赵4老师 2014-07-04
  • 打赏
  • 举报
回复
25楼请注意,64位时,要执行c:\windows\syswow64\regsvr32.exe 注册ocx
加载更多回复(25)

1,451

社区成员

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

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