【问题标题】:ActiveX Control Versioning VB 6.0ActiveX 控件版本控制 VB 6.0
【发布时间】:2012-07-19 15:53:22
【问题描述】:

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

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

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

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

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

谢谢

【问题讨论】:

    标签: vb6 activex versioning


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的宝贵回复。使用“二进制兼容性”对我有用。
    • 那些“几个警告”与违反 COM 合同有关。在接口中,您不能更改方法名称、在方法签名中添加或删除参数,或者更改参数或返回类型。为了做任何这些事情,您必须向组件添加一个新接口。虽然您可以在接口底部添加新方法并摆脱它,但这不是一个好习惯。
    【解决方案2】:

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

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

    为了让你的控件二进制兼容,

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

    【讨论】:

      猜你喜欢
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多