2016-09-28 46 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和所需的代碼。