Vb6 ActiveX控件版本控制VB 6.0

Vb6 ActiveX控件版本控制VB 6.0,vb6,activex,versioning,Vb6,Activex,Versioning,我已经用VB6.0创建了OCX。这个OCX中有自定义activex控件。自定义控件在我的应用程序中使用。我已经在一个系统中安装了我的应用程序,在这个系统中我注册了第一个应用程序 我的第二个应用程序需要OCX中提供的自定义控件,在以前的控件和新的自定义控件中几乎没有增强功能 为此,我使用以前的控件和添加的新控件创建了新的OCX。在这种情况下,将来如果我需要不同的控件,我需要创建更多的OCX文件。这很难维护不同的OCX 如果我在现有OCX中添加新功能并在系统中注册,则现有的应用程序无法找到以前版本的

我已经用VB6.0创建了OCX。这个OCX中有自定义activex控件。自定义控件在我的应用程序中使用。我已经在一个系统中安装了我的应用程序,在这个系统中我注册了第一个应用程序

我的第二个应用程序需要OCX中提供的自定义控件,在以前的控件和新的自定义控件中几乎没有增强功能

为此,我使用以前的控件和添加的新控件创建了新的OCX。在这种情况下,将来如果我需要不同的控件,我需要创建更多的OCX文件。这很难维护不同的OCX

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

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


感谢发布具有“二进制兼容性”的组件,通过检查activex控件的现有版本,然后在编译时在新版本中重新使用类型库中的ID,可以实现这一点(需要注意的是,您可以安全地更改哪些内容)


有关说明,请参见此处:其中包括可以进行哪些增量更改的列表。

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

参考:

要使控件二进制兼容

  • 打开project的“属性”对话框
  • “选择零部件”选项卡
  • 选择二进制兼容性单选按钮
  • 浏览已编译的现有控件
  • 单击“确定”按钮并重新编译项目

感谢您宝贵的回复。使用“二进制兼容性”对我来说很有效。这些“几个注意事项”与违反COM合同有关。在接口中,您不能更改方法名称、从方法签名中添加或删除参数,也不能更改参数或返回类型。为了完成这些任务,您必须向组件添加一个新接口。虽然您可以将新方法添加到接口的底部,但这不是一个好的实践。