是否有可能将接口从C#传递给C ++。
interface IMessage
{
DoSomething();
}
我想将一个IMessage实例传递给C ++代码并从那里调用“DoSomething”。
答案 0 :(得分:2)
由于最初的提问者标记了问题C ++ / CLI,我认为这是他想要的目标。
要将C#接口传递给C ++ / CLI,只需声明C ++ / CLI方法以将接口作为参数。请务必指定^
,因为接口必须通过句柄传递。不要忘记编辑C ++ / CLI项目的项目属性,以引用包含IMessage的任何托管程序集。
public ref class MyClass
{
public:
static void MyMethod(IMessage^ message)
{
message->DoSomething();
}
};
答案 1 :(得分:1)
如果您指的是非托管c ++,那么您可以使用COMVisible属性从C#接口创建COM接口,即
[Guid("<a guid>")]
[ComVisible(true)]
interface IMessage
{
DoSomething();
}