我一直在尝试一个OCX文件加载到我的VB6项目目前最多的一天之一。我已经试过检查注册表中最好的,我知道该怎么COM注册,并使用该文件无济于事REGSVR32已经尝试了好几次。所有我一直从VB6获得当我尝试加载组件(在项目 - >组件)是“文件路径\ FileName.ocx”不能被加载。有没有其他人见过这个,如果是这样,任何想法如何解决呢?

有帮助吗?

解决方案

这也可能是一个依赖问题 - 通过OCX需要一些其它组件不存在。依赖步行者会发现的任何静态的依赖关系。

其他提示

只是一对夫妇的提示,以帮助隔离问题....

看与OLEVIEW控制

检查名称:如果是的保留字,例如“菜单”一个,VB6将无法加载它。 (虽然VB6会很乐意让你创建(和使用)一个有一个不好的名字,直到它被保存和重新加载)

检查接口:没有描述的功能?你可能有损坏或未经许可的OCX。

尝试与ActiveX控件测试容器加载它... 如果可以的话,这个问题是使用VB6,而不是OCX。

我们最近固定类似的错误。在我们的情况下,错误是在Visual Basic项目(.VBP)文件。项目文件已被编辑的外标准化生成计算机和包含引用OCX部件 - 包括工作站特定路径&组件的版本

您可以编辑的文本编辑器的项目文件或从版本控制得到一个工作版本。

取消注册和太重新注册为我工作。结果 请注意,您需要使用此语法来注册这个组件:

regsvr32 /i:design olch2x8.ocx

当你说你曾用“REGSVR32上的文件也没有用”你的意思是你得到的文件名的成功消息或错误消息?如果注册成功,文件CMB是关于OCX可能右是未经许可的。

许可之外,还有一对夫妇与VB6其它跳变点。的尤其如果该OCX是在VB6开发的。

如果是这样,“正式”系统中注册的版本可能与具体冲突OCX你使用。换句话说,他们都可能具有相同的专有名称(或的classid),但你尝试使用可能无法实现在系统中所描述的所有功能的一个登记一个(也就是你有一个不太进化版)。出现这种情况时,笔者希望保持二进制兼容性,同时提高控制的功能。只要公共接口保持兼容,VB不会重新计算的classid。

可以通过强制注销特定控制(实际上注销控制的所有实例)解决此问题。 (REGSVR32 / U control.ocx)然后重新注册要使用的一个。可以肯定的是,当你做这做的结果可能无法正常工作VB6的没有正在运行的实例存在。 (请检查您的任务列表)

希望帮助...

在控制可能在另一个DLL或OCX,可能会丢失或没有注册的依赖,这的可能的表现为VB报告说你试图使用控制缺失。但是,我不知道你将如何标识依赖关系。据我所知,Dependency Walker中识别静态依赖;我不知道,如果它可以识别COM的依赖关系。

的Un注册OCX 重新注册OCX 然后在VB6再次加载的项目,它为我工作。

由于每个人

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top