我需要在C#中定义一个接口(例如ICommonHandler)并在Delphi中实现它,或者就其他任何语言而言。目前,优先考虑的是Delphi。
从C#开始,我需要通过在Delphi中实现的类来实例化接口ICommonHandler的实例。
总结以上内容,我有一个从C#公开的“合同”。我的C#代码然后期望从Delphi或任何语言实现此契约的实现。
以上可能吗?如果是这样,我非常感谢有关如何实现这一目标的可行指南。
我的感觉是以上是不可能的,因为无法为同一个接口注册包含相同GUID的多个COM服务器,在本例中为ICommonHandler。
答案 0 :(得分:0)
“我的感觉是上述将无法实现,因为无法为同一个接口注册包含相同GUID的多个COM服务器,在本例中为ICommonHandler。” 很显然这不是真的!谁给了你这个想法? 如果你的delphi代码暴露了足够的ICommonHandler。
答案 1 :(得分:0)
在C#中:生成一个COM项目,该项目仅使用其中的类型库编译为DLL,描述ICommonHandler。
在Delphi中:从此DLL导入类型库,可选择让导入器为它们生成包装器对象。 (我个人不喜欢和使用原始接口实例引用)
然后,在您自己的ActiveX库项目中使用此CommonHandler_TLB.pas
,创建实现ICommonHandler的TInterfacedObject或TAutoObject的后代。如果您使用文件>新>其他... ActiveX下的向导,特定的ClassID和所需的代码将为您设置。