我有一个主要用C#编写的项目。现在,由于外部库的一些限制,我需要合并一些在单独项目中定义的C ++代码。
是否可以在Visual Studio c ++ \ cli库中创建一个C ++类,它扩展了在单独的DLL库中定义的C#类?
基本上,我需要使用继承在新的C ++类中共享一些抽象C#类中定义的代码。
答案 0 :(得分:0)
您可以在C ++项目中扩展C#类,实现一个ref class child,在/ clr编译源中定义如下:
public ref class CPPRefClass:public CSharpClass
这当然意味着CPPRefClass仍然是.NET类,但您可以使用委托在纯C ++类中使用它。
您甚至可以使用 gcroot 模板将其定义为C ++本机类的成员:
class NativeClass
{
private:
gcroot<CPPRefClass^> m_CPPRefClass;
}