我需要在C# (例如ICommonHandler)中定义一个接口,并用Delphi或任何其他语言实现它。目前,优先考虑的是Delphi。
然后,我需要在C#中通过用Delphi语言实现的类来实例化接口ICommonHandler的实例。
综上所述,我有一个从C#公开的“契约”。然后,我的C#代码期望从Delphi或任何任意语言实现此契约。
上述情况有可能实现吗?如果是这样的话,我会非常感谢关于如何让它运行的可能的指导方针。
我的感觉是,上述情况是不可能的,因为不能为同一接口注册多个包含相同GUID的COM服务器,在本例中为ICommonHandler。
发布于 2016-09-28 20:48:49
“我的感觉是,上述情况是不可能的,因为不能为同一接口注册多个包含相同GUID的COM服务器,在本例中为ICommonHandler。”这根本不是真的!是谁给你这个主意的?如果您的delphi代码公开了ICommonHandler,那就足够了。
发布于 2016-09-29 17:52:46
在DLL中:生成一个COM项目,该项目编译为仅包含描述ICommonHandler的类型库的C#。
在Delphi中:从此DLL导入类型库,可选地让导入器为它们生成包装器对象。(我个人不喜欢使用原始接口实例引用)
然后,在您自己的ActiveX库项目中使用此CommonHandler_TLB.pas,创建实现ICommonHandler的TInterfacedObject或TAutoObject的后代。如果使用文件>新建>其他...ActiveX下的向导、特定的ClassID和所需的代码将为您生成。
https://stackoverflow.com/questions/39742273
复制相似问题