【问题标题】:What are dispinterface declarations used for?dispinterface 声明的用途是什么?
【发布时间】:2010-12-13 20:24:37
【问题描述】:

当您在 Delphi 中创建类型库并创建接口和关联的 CoClass 时,Delphi 还会创建匹配的 dispinterface 声明。

我的理解是这些与我的接口派生自 IDispatch 的事实有关,但我认为 TAutoObject 实现了 IDispatch 所需的一切。所以我的问题有三个:

  1. 调度接口有什么用?
  2. 为什么需要它?
  3. 如何使用它?

【问题讨论】:

    标签: delphi com


    【解决方案1】:

    COM 就像 VOODOO,只有当你愿意被它的力量所吞噬时,你才应该参与其中!

    当您深入了解细节时,COM 确实是一个非常复杂的主题。然而从表面上看,像 Delphis 这样的实现为您提供了非常简单地使用它所需的所有工具。但是,如果您有兴趣降低和肮脏,那么有一些非常好的 COM 书籍,包括(从 Delphi 的角度来看)Delphi Com Programming

    真正简化并尝试回答您的问题。

    1. VB 无法处理 IUnknown 由于其使用指针(或类似的东西)的限制,因此 Microsoft 添加了允许 VB 与 COM 对象交互的调度或分发接口。这些调度接口随后成为 Ole Automation 对象(COM 的一个分支)的基础。
    2. 让 VB 与 COM 一起工作
    3. 让 Delphi 为您做到这一点。

    【讨论】:

    • VB5/6 不再需要调度接口。 VBScript/JScript 做。
    • 他们怎么能不再需要调度接口了? VB5/6 没有改变。我不确定我明白你的意思。
    • :-)) VB4 做到了。 VB6 可以轻而易举地调用仅继承接口的 IUnknown 方法。但不能将这些转换为 Object。
    • 2016 年可以肯定地说,任何复杂的技术都不是好技术。不幸的是,我必须使用它
    【解决方案2】:

    TechVanguards.com 是 Delphi & COM 网站,内容非常好。它有教程和一些高级示例。
    您将找到有关 disp interfaces 的信息以及如何使用它们的示例。

    【讨论】:

    • 此网站已关闭
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多