gpt4 book ai didi

delphi - 我找到了 ComClass,现在如何引用它?

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

我在 Delphi 2010 中编写了一个小型 COM 服务器,充当零售应用程序的插件。零售应用程序寻找一个“发现”接口(interface),该接口(interface)注册任意数量的附加接口(interface),为每个接口(interface)调用TAutoObjectFactory.Create。这工作得很好——所有插件接口(interface)都按设计运行。

但现在我想从另一个接口(interface)调用一个接口(interface)的公共(public)方法,这样我就不必重复代码。看起来很简单,只需调用 ComClassManager.ForEachFactory 查找我需要使用的接口(interface)的 ClassID 即可。也能正常工作!

但是现在我找到了这个类,我被一个看似微不足道的最后一步难住了:如何使用或转换我已经找到的类(或类引用?)来实际调用它的方法之一。

在我发送到 ForEachFactory 的“FactoryProc”中,我假设 TComObjectFactory 的 ComClass 属性就是我想要的,但它的类型为 TClass,类对其指向的实际类对象的引用(至少我希望我正确理解了这一点)。我对类引用有点模糊,并且我尝试强制转换或以其他方式取消引用此属性导致了访问冲突或编译器错误。

有什么建议吗?

最佳答案

您的评论是正确的,ComClassManager 处理类,而不是实例。您需要的是(您的应用程序本地实现)running object table (或类似的东西),因此插件实例可以相互交互。

如何实际实现它取决于您真正需要什么,例如在所有正在运行的实例上调用方法,或仅在特定类的实例上调用方法。

关于delphi - 我找到了 ComClass,现在如何引用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14951799/

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