Visual Studio 6 Windows公共控件6.0(sp6)Windows 7,64位

Jay*_*Jay 24 vb6 visual-studio visual-studio-6 microsoft-common-controls

我被要求帮助为某人创建遗留vb6应用程序,因此我决定按照本指南在我的Windows 7 x64笔记本电脑上投入Visual Studio 6 .

它安装得很好,从我可以看到一切正常,除了Microsoft Windows Common Controls 6.0(sp6).Microsoft Windows Common Controls-2 6.0(sp6),Microsoft Windows Common Controls 5.0(sp2)等都可以正常工作.但是,当我尝试添加Microsoft Windows公共控件6.0(SP6)组件时,我收到错误:

'' could not be loaded
Run Code Online (Sandbox Code Playgroud)

我无法添加图像,所以我已经为这里的任何人想要看到它的屏幕截图上传了一个:

http://i.imgur.com/7aym4xB.png

我已经尝试注册/取消注册/重新注册MXCOMCTL.OCX,MSCOMCT2.OCX,msdatsrc.tlb都没有成功.我还卸载了一个已知的安全更新,该更新可能导致Windows公共控件出现问题.我已经删除了IE11,即使报告状态IE11不会像IE10那样导致MSCOMCTL.OCX问题.

我在Windows XP SP3兼容模式下运行VB6.EXE.使用禁用可视主题,禁用桌面合成,以及在高DPI设置下禁用显示缩放.以及以管理员身份运行它.

我还尝试打开一个使用此控件的先前项目,并且在加载过程中失败时出现与屏幕截图相同的"空白"错误,生成的错误日志中包含以下内容:

第35行:控件lvData的类MSComctlLib.ListView不是加载的控件类.第223行:控制Stat的MSComctlLib.StatusBar类不是加载的控件类.

所以这告诉我这不是.vbp中的版本问题,就像一些建议(因为它也发生在新的空白项目中).

我斗智斗勇.显然人们已经使VB6和Windows 7 x64都能正常工作(使用Windows公共控件)但是我没试过可以缓解我的问题.我希望这里有人可能会遇到这个问题,或者对于发生的事情有一些想法.

Jay*_*Jay 47

在等待这里的想法回复时,我决定尝试一些东西.我以管理员身份运行regedit,导航到HKEY_CLASSES_ROOT\TypeLib Key,然后搜索"MSCOMCTL.OCX"...我删除了引用此.ocx文件的每个键.

搜索整个注册表,删除我找到的内容后,我以管理员身份运行命令提示符.然后我导航到C:\ Windows\SysWOW64并输入以下命令:

regsvr32 MSCOMCTL.OCX
regtlib msdatsrc.tlb
Run Code Online (Sandbox Code Playgroud)

再次注册这两个文件后,一切正常!我在网上搜索HOURS寻找这个解决方案无济于事.事实上我在这里发布一个问题之后自己修复了它:(即使Visual Studio 6已经过时,希望这可能仍然有助于其他人!

  • 仅供参考,而不是搜索注册表并删除对MSCOMCTL.OCX的引用我在运行Jay的答案中的两个命令之前运行了`regsvr32/u mscomctl.ocx`,它对我来说没问题.另外,我使用了来自.net框架目录的regtlibv12(`C:\ Windows\Microsoft.NET\Framework\v4.0.30319`) - 所以在某些情况下它似乎取消注册效果不错(我在Win 7 32位但是). (4认同)
  • 谢谢,你可能为我节省了大量的工作.像下面的Loloy D,我只是运行命令而不通过注册表.而不是regtlib(我的系统上找不到)我使用了regtlibv12.后者包含在(某些).NET框架版本中. (3认同)
  • 我确实喜欢你已经完成了(删除了与它相关的键),当我运行新项目时,有太多的ocx失败了,比如comdlg32.ocx等等.好吧,我几乎感到沮丧.然后我下载了文件"microsoft windows common controls(SP6)并安装它们,一切都很顺利.我在这里下载了文件:https://download.microsoft.com/download/3/a/5/3a5925ac-e779-4b1c- BB01-af67dc2f96fc/VisualBasic6-KB896559-V1-CHS.exe程序 (2认同)

小智 11

在"C:\ Windows\SysWOW64"中实现这两个指令已经对我有用了

regsvr32 MSCOMCTL.OCX
regtlib msdatsrc.tlb
Run Code Online (Sandbox Code Playgroud)

值得注意的是DOS框应该处于管理员模式.在此之前,我一直有错误的静脉"控制tvTreeView的类MSComctlLib.TreeView不是一个加载的控件类"和"控制lvListView的类MSComctlLib.ListView不是一个加载的控件类".

我也在64位Windows 7上使用Visual Studio 6,并进行了SP6更新.由于同样的问题,我被赶到了这里.在我的情况下,我不需要通过注册表.