gpt4 book ai didi

delphi - 通过 Delphi 中的自动化使对象模型可用 : what’s the easiest way?

转载 作者:行者123 更新时间:2023-12-03 15:57:30 24 4
gpt4 key购买 nike

我们正在 Delphi 中从头开始重写计算核心,并且正在寻找让其他人针对它编写代码的方法。

自动化似乎是完成此任务的一种相当安全的方法。我们正在考虑的一种用途是使其可用于 VBA/Office,并生成 .NET 程序集(基于 Automation 对象,这很简单)。

但是代码应该仍然很容易在 Delphi 中使用,因为我们将用它来编写我们的(桌面)UI。

现在我一直在考虑在 Delphi 中创建一个自动化服务器,而且必须在类型库向导中设计组件,然后生成基本代码,这看起来相当麻烦。

我们必须实现的计算在尚未批准的官方规则和法规中进行了描述,因此在我们完成之前仍然可能会发生变化 - 它们很可能会发生变化,也许会相当广泛。等待最终版本不是一个选择。

另一种方法是先完成整个对象模型,然后编写一个单独的自动化服务器,仅描述顶级对象,将 $METHODINFO ON 切换为 ON,并使用 TObjectDispatch 返回所有从属对象。 据我所知,这需要编写包装器以通过 IDispatch 接口(interface)返回对象。由于其中有超过 100 个不同的类别,这看起来并不是一个有吸引力的选择。 编辑: TObjectDispatch 足够智能,可以包装属性和方法返回的任何对象;所以只有顶部的对象需要被包裹。然而,缺乏完整的类型库确实意味着只能进行后期绑定(bind)。

是否有其他更简单(阅读:无麻烦)的方法在 Delphi 中编写 COM 可访问的对象模型?

最佳答案

您不必使用类型库设计器。您可以编写或生成(例如,从 Delphi 类的 RTTI)一个 .ridl 文件并将其添加到您的自动化库项目中。

关于delphi - 通过 Delphi 中的自动化使对象模型可用 : what’s the easiest way?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3093625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com