标题解释。 我有我写C ++ / CLI包装的,这将反过来会在C#中导入为参考本地C ++动态链接库。
问题是,在C#中我没有看到在包装我有类(从DLL进口)。
什么样的关键字,我应该使用和如何重新申报我的原生C ++对象成为在C#中可见?
标题解释。 我有我写C ++ / CLI包装的,这将反过来会在C#中导入为参考本地C ++动态链接库。
问题是,在C#中我没有看到在包装我有类(从DLL进口)。
什么样的关键字,我应该使用和如何重新申报我的原生C ++对象成为在C#中可见?
好吧,教程。 你有一个C ++类NativeClass
要暴露给C#。
class NativeClass {
public:
void Method();
};
1)创建一个C ++ / CLI项目。 链接到你的C ++库和头文件。
2)创建一个公开,你想方法的包装类。 例:
#include "NativeClass.h"
public ref class NativeClassWrapper {
NativeClass* m_nativeClass;
public:
NativeClassWrapper() { m_nativeClass = new NativeClass(); }
~NativeClassWrapper() { this->!NativeClassWrapper(); }
!NativeClassWrapper() { delete m_nativeClass; }
void Method() {
m_nativeClass->Method();
}
};
3)参考你的C ++ / CLI项目C#项目添加。
4)using语句中使用的包装类型:
using (var nativeObject = new NativeClassWrapper()) {
nativeObject.Method();
}
using语句确保Dispose()方法被调用,它会立即运行析构函数,破坏原生对象。 否则就会出现内存泄漏,并可能会死可怕的(不是你的程序)。 注: 该Dispose()方法被神奇地为您创建 。