在C#中调用C ++库

我有很多用C ++编写的库。 我想从C#调用这些库,但是,我遇到了很多问题。 我想知道是否有书或指南告诉我如何做到这一点。

如果你谷歌“c ++ c #interop”,你会发现有关这个主题的大量信息。

几个链接:

http://msdn.microsoft.com/en-us/magazine/cc301501.aspx
http://msdn.microsoft.com/en-us/library/ms235281(VS.80).aspx

我最近不得不在.NET中包装一些c ++代码。 虽然c ++代码打包为dll,但是对于P / Invoke来说界面太不友好了,所以我决定用托管c ++或C ++ / CLI编写它,因为它现在已经很明显了。

我发现本教程对语法非常有用。 它的眼睛并不那么容易,但内容似乎相当不错。

我是C ++ / CLI in Action一书的忠实粉丝,该书在该地址有一些在线的有用示例章节。

这个CodeProject简介是一个很好的起点。

C ++ / CLI in Action的作者在CodeProject上有很多文章,向下滚动到他的索引上的C ++ / CLI部分。

关于P / Invoke的维基百科文章有很多原因可能导致您不想使用这种方法,我同意这一点:

  • 编译器失去了打字支持
  • 可能的数据类型或对齐问题,因为您必须手动映射类型
  • 需要固定垃圾收集的对象

MSDN的最佳起点是摘要文章 。