【问题标题】:Consume events in delphi DLL that can be used by VB6使用 VB6 可以使用的 delphi DLL 中的事件
【发布时间】:2011-03-11 13:10:21
【问题描述】:

我在 delphi dll 中创建了带宽监控功能,如果发生任何带宽传输,我需要在其中引发事件。同样,我需要在 vb 中声明 delphi dll 并使用 dll 事件。欢迎任何想法

【问题讨论】:

  • 它是什么样的对象?如果它是一个触发 COM 事件的 COM 对象,那么您将能够捕获它们。如果它是 Delphi 内部的东西,那么可能不是。
  • 是的 com 对象触发 com 事件
  • 它将像任何其他 COM 对象一样工作 - 添加对它的引用,使用 WithEvents 修饰符在代码中声明对它的引用,然后您应该能够添加事件处理程序(提示:使用代码窗口顶部的列表框选择对象,然后选择事件。)

标签: delphi events vb6


【解决方案1】:

我相信你想要一个 IDispatch 接口,这意味着你 (a) 在 Delphi 中定义一个类,(b) 使用双接口(COM vtable + DISPATCH)。并且 (c) 将该 COM 对象公开给您的 VB 对象。 (d) 在 VB 中,您还定义了 IDispatch 类型的 COM 接口,并将该接口作为参数传入。我会将这样的 IDispatch 接口称为 INotify。

实际上,OLE 自动化中经常使用标准的 com 接口,例如连接点容器,您可能想了解一下。见这篇文章:

http://www.gtro.com/delphi/comevents_e.php

【讨论】:

    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 2011-12-01
    • 2021-12-27
    相关资源
    最近更新 更多