-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 回答