-2

C# から C++ にインターフェイスを渡す可能性はありますか。

interface IMessage
{
     DoSomething();
}

IMessage のインスタンスを C++ コードに渡し、そこから「DoSomething」を呼び出したいと思います。

4

2 に答える 2

3

元の質問者が C++/CLI という質問にタグを付けたので、それが彼のターゲットにしたいものだと思います。

C# インターフェイスを C++/CLI に渡すには、インターフェイスをパラメーターとして受け取る C++/CLI メソッドを宣言するだけです。^インターフェイスはハンドルで渡す必要があるため、必ず を指定してください。C++/CLI プロジェクトのプロジェクト プロパティを編集して、IMessage を含むマネージ アセンブリを参照することを忘れないでください。

public ref class MyClass
{
public:
    static void MyMethod(IMessage^ message)
    {
        message->DoSomething();
    }
};
于 2013-10-30T17:23:09.637 に答える
1

アンマネージ C++ を意味する場合は、COMVisible 属性を使用して C# インターフェイスから COM インターフェイスを作成できます。

[Guid("<a guid>")]
[ComVisible(true)]
interface IMessage
{
     DoSomething();
}
于 2013-10-30T15:20:23.667 に答える