簡體   English   中英

在C ++中使用C#接口或在C#中使用C ++接口

[英]Use a C# interface in C++ or use a C++ interface in C#

我正在開發一個解決方案,其中有一個C ++解決方案和C#解決方案必須使用的接口。 我想知道:

在以下兩者之間實現此目標的最佳方法是:

  • 我在C ++項目中使用的AC#接口
  • 我將在C#項目中使用的C ++接口

您還能指出我應該如何尋求最佳解決方案嗎?

您是說托管c ++嗎?

如果是托管c ++,這很容易做到,只需將接口放在單獨的project(dll)中,然后從c#中引用它

如果要使用非托管C ++進行操作,事情就會變得困難

比您需要使用COMPInvoke或某種服務/套接字通信

希望這可以幫助

我從您的最后一條評論中看到您正在使用托管C ++,因此這很簡單,但是我將保留此答復。

C#(建立COM類):

[Guid("69432320-04B6-3233-928F-FD8583232C880")]
public interface MyInterface
{
   [DispId(1)]
   void Method1 (string name);
}

MyInterface myInterface = (MyInterface )new ConcreateClassImplementingInterface ();

本機C ++:

MIDL_INTERFACE("69432320-04B6-3233-928F-FD8583232C880") //note: same guid
{
  public:
     virtual Method1 (BSTR name);
}

這還算不上完整,但是希望可以讓您對所涉及的內容和一些關鍵術語有所了解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM