如何将接口从 C# 传递到C++
本文关键字:C++ 接口 | 更新日期: 2023-09-27 18:37:25
是否有可能将接口从 C# 传递到C++。
interface IMessage
{
DoSomething();
}
我想传递一个IMessage的实例来C++代码并从那里调用"DoSomething"。
由于最初的提问者将问题标记为 C++/CLI,我认为这就是他想要的目标。
若要将 C# 接口传递给 C++/CLI,只需声明 C++/CLI 方法即可将接口作为参数。请务必指定^
,因为接口必须通过句柄传递。不要忘记编辑 C++/CLI 项目的项目属性,以引用包含 IMessage 的任何托管程序集。
public ref class MyClass
{
public:
static void MyMethod(IMessage^ message)
{
message->DoSomething();
}
};
如果您的意思是非托管 c++,则可以使用 COMVisible 属性从 C# 接口创建 COM 接口,即
[Guid("<a guid>")]
[ComVisible(true)]
interface IMessage
{
DoSomething();
}