我已经完成了这两个问题:
Possible to call C++ code from C#?
Wrapping unmanaged C++ with C++/CLI - a proper approach
我还阅读了一些关于C++/CLI
的内容,但说实话,我很困惑。
我有一个VC++
项目,我想将其转换为C#
项目。
我的Qs是:
C++/CLI
用于此目的以及如何使用?答案 0 :(得分:1)
1)是的,你需要C ++ / CLI
2)不,你不需要为每个方法创建一个包装类,你需要为你拥有的每个C ++(native)类创建一个包装类,它类似于声明一个接口
Wrapping unmanaged C++ with C++/CLI - a proper approach
是一个只有一个方法的例子,但是如果用类型为NativeType的C ++编写的yuor类有另一种方法,例如:
void Method2()
只是在同一个班级
void ManagedMethod2()
{ NativePtr->Method2(); }
所以整个包装类将是: #include“NativeType.h”
public ref class ManagedType
{
NativeType* NativePtr;
public:
ManagedType() : NativePtr(new NativeType()) {}
~ManagedType() { delete NativePtr; }
void ManagedMethod()
{ NativePtr->NativeMethod(); }
void ManagedMethod2()
{ NativePtr->Method2(); }
};
始终从上面的链接调用C#中的method2,你会这样做:
mt.ManagedMethod2();