C#中的非托管C++类

Mig*_*uel 3 c# c++ unmanaged managed

我可以从C#代码实例化和"使用"非托管C++类(比如使用DllImport等)吗?

The*_*ler 6

在Windows上,您可以使用COM interop来使用C++.但是,这不适用于Linux/Mac OS X.

另一种方法是在C++类中公开一个C包装器(C++中的extern"C").这是必要的,因为DllImport期望C ABI.

编辑:第三种选择是C++/CLI,即编译.Net的C++代码.这也是一个仅限Windows的解决方案.