首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有工具可以把一些C++类打包成C#?

有没有工具可以把一些C++类打包成C#?
EN

Stack Overflow用户
提问于 2011-06-12 22:32:40
回答 3查看 91关注 0票数 2

一个软件开发工具包通过C++类库提供了一些API,包括h、lib、dll文件。

但是,我想使用C#来处理这个库。

那么,有没有工具可以把C++类库打包成C#呢?或者一些建议?

我不想使用CLI,因为有太多的类。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-12 22:44:16

使用C++/CLI,这是.NET平台上的托管代码中使用的C++方言。该语言主要是为您的应用程序设计的。

请看这个article (标题有点夸张,但内容很好)。对C++代码包装器的其他搜索应该会给出更多的示例。

正如Barry所指出的,使用平台调用(P/ invoke )调用将允许您从DLL调用本机代码。

票数 2
EN

Stack Overflow用户

发布于 2011-06-12 22:43:16

如果您想手动包装库,可以直接使用C++/CLI在您的API或P/Invoke周围创建托管包装器,以便直接从C#调用本机代码。

如果你想自动创建一个包装器,我相信SWIG项目已经提供了一个C/C++ => C# module。SWIG模块在幕后使用P/Invoke (所以,作者声称,它也可以在Mono上使用)。它似乎可以为您处理P/Invoke包装器的许多细节(.NetMono)。我还没用过,但它似乎就是你要找的。

票数 2
EN

Stack Overflow用户

发布于 2011-06-12 22:45:03

您可以做的一件事是在C++类库周围构建一个COM包装器。将C++类打包为COM对象后,您将能够在C#代码中使用它们。

参见http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx ("COM Interop Part 1: C#客户端教程“)

如果您需要有关如何将C++库包装到COM中的信息,我可以建议您阅读Microsoft Press的优秀书籍"Inside COM“。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6322495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档