错误372的​​原因 - 加载控制失败您的<control.ocx>版本可能已过时</control.ocx>

时间:2009-03-06 14:59:08

标签: vb6

VB6运行时的已知原因错误372 - 无法加载控制您的版本可能已过时。

我有一个由几个标准窗口控件和一个远点构建的activceX控件。 该控件用于VB6桌面应用程序。我看到的行为是这个主动控件偶尔会在某些工作站上失败。我已经确认工作站上有正确的引用。奇怪的是,控制不会马上失败。它将在Main表单上正常工作,但在打开另一个表单时失败。

它似乎也与运行时7内存不足错误有关。当这些错误发生时,任务管理器中不会显示异常的CPU或内存使用情况。

似乎问题可能与MSCOMCT2.OCX有关。

任何想法。

2 个答案:

答案 0 :(得分:3)

首先在NOTEPAD中打开表单文件(扩展名为FRM的文件),确保表单真正引用相同的ActiveX控件。引用位于表单顶部附近。虽然不常见VB6会使不同形式之间的引用不匹配,但这种情况很不可能。

再看看Micrsoft的this。确保为所有用户安装了控件,并查看问题是否已解决。

这样的问题通常是由预期的COM接口和正在加载的控件之间的不匹配引起的。

答案 1 :(得分:1)

我遇到了同样的问题,发现当我创建安装包(使用InstallShield)时,我需要取消选中INstallShield设置的对话框中的“过滤文件”框来扫描Visual Basic项目的依赖项。它没有将VB项目的MSDatgrd.ocx控件打包到设置中,并且该控件不在Win 7机器中,所以它抛出了这个372消息。

当我为我的软件重建我的安装包并且没有过滤文件时,它包含该控件并将其作为安装过程的一部分安装在目标机器上,一切运行正常。