我有一个为C ++程序编写的插件(作为.dll)。这个.dll所依赖的接口如下所示:
class Platform
{
virtual bool callSomeFunc() = 0;
//etc.
}
.dll通过extern "C"
函数为平台提供对象。很标准。 .dll可以通过实现上述接口的类的对象与平台交互。我猜的很标准。
现在我们需要用C#编写平台。理想情况下,无需重写插件,因为我们的插件中包含大部分代码。有办法解决这个问题吗? (比如传递.dll期望的Platform
对象的C#对象?)
答案 0 :(得分:1)
如果您希望在非托管代码可以使用的C#代码中实现一个对象,那么您就不能再使用C ++类了。只有C ++代码才能创建C ++类。 C#代码不能。
显而易见的事情是使用COM进行互操作。 C#代码既可以实现也可以使用COM对象。