在 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 [关闭]