在 C# 中调用 C++ 库 [关闭]

Posted

技术标签:

【中文标题】在 C# 中调用 C++ 库 [关闭]【英文标题】:Call C++ library in C# [closed] 【发布时间】:2009-02-22 11:53:22 【问题描述】:

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

【问题讨论】:

geeklit.blogspot.com/2006/08/calling-c-lib-from-c.html 见***.com/questions/569603/… 【参考方案1】:
    DllImport - http://msdn.microsoft.com/en-us/library/aa984739(VS.71).aspx 包装类 - http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/67cc9eea-a4fe-48bd-b8d5-f3c8051ba896

【讨论】:

【参考方案2】:

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

几个链接:

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

【讨论】:

【参考方案3】:

我最近不得不在 .NET 中封装一些 c++ 代码。虽然 c++ 代码被打包为 dll,但接口对 P/Invoke 来说太不友好了,所以我决定用托管 c++ 或 C++/CLI 编写它。

我发现this tutorial 在语法上非常有用。看着不是那么容易,但内容看起来还不错。

【讨论】:

【参考方案4】:

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

这个intro on CodeProject 是一个很好的起点。

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

Wikipedia article on P/Invoke 有很多理由说明您可能不想使用这种方法,我同意这一点:

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

MSDN 上最好的起点是summary article。

【讨论】:

以上是关于在 C# 中调用 C++ 库 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

高质量图像缩放库[关闭]

如何使用 C# 编译 C++ 代码。需要开发 C++ IDE [关闭]

C++ Win32 中的 C# DateTime.ToUniversalTime() [关闭]

在 c++ 中翻译 lambda 表达式 c# [关闭]

C# 中的 C++ Armadillo 代码 [关闭]

为啥 C++ 中的 Visual Studio 不如 C# 中的智能? [关闭]