2016-09-28 69 views
0

暴露予有需要定义在C#(例如ICommonHandler)的接口,并具有它在Delphi实现,或者,对于该问题的任何其它语言接口二次COM服务器。目前,重点在德尔福。创建从在主COM服务器

从C#然后我需要通过该公司在德尔福实现的类实例化接口ICommonHandler的实例。

总结上面,我有一个从C#公开的'合同'。我的C#代码然后期望从Delphi执行此合约,或者任何任意语言。

以上可能吗?如果是这样,我非常感激可能的指导方针如何实现。

我的感觉是,上述将是不可能的,因为一个人不能注册包含相同的GUID对于相同的接口的多个COM服务器,在这种情况下ICommonHandler。

+0

总之,这是可能的。您可以有许多类以任意数量的编程语言实现相同的接口。请提供更多的细节,他们质疑,因为你问它太开放 –

回答

0

“我的感觉是,上面将是不可能的,因为一个人不能注册包含相同的GUID对于相同的接口的多个COM服务器,在这种情况下ICommonHandler”。 这根本不是真的!谁给了你这个主意? 如果你的delphi代码暴露了足够的ICommonHandler。

0

在C#:生成编译为一个DLL只有类型库中的,描述ICommonHandler一个COM项目。

在Delphi:从这个DLL导入类型库,可选择具有进口商为他们生成包装对象。 (我个人更喜欢不使用原始接口实例引用)

然后,在您自己的ActiveX Library项目中使用此CommonHandler_TLB.pas,创建实现ICommonHandler的TInterfacedObject或TAutoObject的后代。如果您使用ActiveX下的文件>新建>其他...向导,则会为您创建特定的ClassID和所需的代码。