2

我使用 VB 6.0 创建了 OCX。这个 OCX 里面有自定义的 activex 控件。我的应用程序中使用了自定义控件。我已将我的应用程序安装在我已注册 mu 第一个应用程序的系统中。

我的第二个应用程序需要我的 OCX 中可用的自定义控件,以前的控件和新的自定义控件中的一些增强。

为此,我创建了新的 OCX,其中包含以前的控件并添加了新控件。在这种情况下,如果我需要不同的控件,我需要创建更多的 OCX 文件。这很难维护不同的OCX。

如果我在现有 OCX 中添加新功能并在系统中注册,则现有应用程序无法找到以前版本的 activex 控件。

如何在现有的 ocx 中添加新功能而不影响已经使用这些控件的应用程序?

谢谢

4

2 回答 2

3

编译项目时,Visual Basic 仅在必要时创建新的类和接口 ID。它保留了以前版本的类和接口 ID,以便使用早期版本编译的程序将继续工作。如果您所做的更改会导致版本不兼容,Visual Basic 会警告您。如果您想保持与旧版本的 ActiveX 组件的兼容性。

参考: http: //support.microsoft.com/kb/161137

为了使您的控制二进制兼容,

  • 打开项目的属性对话框
  • 选择组件选项卡
  • 选择二进制兼容性单选按钮
  • 浏览已编译的现有控件
  • 单击确定按钮并重新编译您的项目
于 2012-07-20T11:36:41.877 回答
3

通过检查现有版本的 activex 控件,然后在编译时在新版本中重新使用类型库中的 ID,发布具有“二进制兼容性”的组件允许这样做(有几个警告涉及您可以安全更改的内容)。

有关说明,请参见此处:http ://wynport.wynsys.net/Visual_Basic_Binary_Compatibility.htm ,其中包含您可以进行哪些增量更改的列表。

于 2012-07-20T11:18:28.017 回答