Windows 更新安装安全更新后KB2687323 http://support.microsoft.com/kb/2687323,我的 VB6 项目无法加载。显示的错误消息是“无法加载'[project_vbp_path]/MSCOMCTL.OCX'--继续加载项目吗?”。注意,消息中的路径是vbp文件夹路径,而不是控件的注册路径。
Details:
- MSCOMCTL.OCX 注册在常用的 system32 文件夹中。
- 由完全相同的项目生成的可执行文件在更新前一小时运行良好并加载更新的 MSCOMCTL.OCX (我已使用 Process Explorer 检查了它)。
安全更新说明指出 MSCOMCTL.OCX 有新的修复版本。因此,我检查了项目属性中的“升级 ActiveX 控件”复选框。我两种方法都尝试过;检查和取消检查都无济于事。 VB6 IDE 拒绝加载升级后的 OCX。
经过几个小时的努力、系统恢复、注册、注销周期和一夜的睡眠,我已经成功地查明了问题所在。事实证明,项目文件包含以下行:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
版本信息“2.0”似乎是未加载的原因。在记事本中将其更改为“2.1”解决了问题:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX
因此,在类似的“OCX 无法加载”情况下,一种可能的解决方法是启动一个新项目。将控件放在其中一个窗体上,然后用记事本检查 vbp 文件以查看它所期望的版本。
或者更简单的方法:
(我在下面鲍勃的宝贵评论后添加了这一部分)
您可以在记事本中打开 VBP 项目文件,找到阻止 VB6 自动将项目升级到 2.1 的令人讨厌的行并将其删除:
NoControlUpgrade=1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)