我已经讨论了这两个问题:
我也读过一些关于 的东西C++/CLI
,但老实说我很困惑。
我有一个VC++
项目,我想把它转换成一个C#
项目。
我的问题是:
- 我是否需要
C++/CLI
用于此目的以及如何使用? - 我是否必须在我的新项目上为原始项目的每个方法实现一个包装类,如果不是,我该如何进行?
我已经讨论了这两个问题:
我也读过一些关于 的东西C++/CLI
,但老实说我很困惑。
我有一个VC++
项目,我想把它转换成一个C#
项目。
我的问题是:
C++/CLI
用于此目的以及如何使用?1)是的,你需要 C++/CLI
2)不,您不需要为每个方法制作一个包装类,您只需为您拥有的每个 C++(本机)类制作一个包装类,类似于声明一个接口
是一个只有一种方法的例子,但是如果你用 C++ 编写的 NativeType 类型的类有另一种方法,例如:
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# 中的方法 2,你会这样做:
mt.ManagedMethod2();