4

私は、C ++ソリューションとC#ソリューションで使用する必要のあるインターフェイスを使用するソリューションを開発しています。私が知りたいのですが:

これを達成するための最良の方法は次のとおりです。

  • C ++プロジェクトで使用するAC#インターフェイス
  • C#プロジェクトで使用するC++インターフェイス

また、最善の解決策をどのように進めるべきかを教えていただけますか?

4

2 に答える 2

4

マネージ C++ のことですか?

マネージ C++ の場合は簡単です。インターフェイスを別のプロジェクト (dll) に配置し、C# から参照するだけです。

管理されていないc ++で同じことをしたい場合、事態は難しくなります

COMPInvokeまたは何らかのサービス/ソケット通信を使用する必要があるよりも

お役に立てれば

于 2012-08-10T09:18:04.040 に答える
2

前回のコメントから、マネージ 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);
}

これは決して完全ではありませんが、関連する内容といくつかの重要な用語について理解していただければ幸いです。

于 2012-08-10T09:29:30.370 に答える