-1

我正处于学习 c#/.NET 的早期阶段,使用 MonoDevelop 来完成我的工作。我遇到了一些用 c 或有时 c++ 开发的 API。我一直在寻找信息来帮助我开始实现用 c 或 c++ 编写的 API,以便我可以将它们用于我的 c# 项目。我现在没有任何具体的代码可以给你看,我需要的是指向正确的方向。

以下是我浏览过的一些地方的示例:

我正在考虑在 C# 中实现 ac/C++ API。我做了一些研究,但我在开始时遇到了麻烦。

http://www.codeproject.com/Articles/1285/Calling-API-functions-using-C(一篇有点过时的文章,看起来可行,但似乎并没有走得太远。)

http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=219 (一些基础知识,但没有太多关于发生了什么的细节。)

在 SO 上找到了一些东西: C api to C# GUI (这看起来非常好)

https://stackoverflow.com/questions/9747607/c-apivs-2005-integrate-into-c-sharp-vs-2010project (没有给出答案)

从 C# 与 C 交谈 (看起来不错,一些关于 Pinvoke 的东西)

无论如何,我有点不知所措,可以使用一些指导让我开始。也许这对于一个菜鸟来说太过分了 [原文如此]?

任何帮助深表感谢。干杯

4

1 回答 1

3

试试SWIG——它是一个为多种语言创建围绕 C 和 C++ 代码的包装器的工具。

我已经用过很多次了,效果很好。基本上,您只需定义要包装的 C 和 C++ 代码文件/库,然后 SWIG 生成相应的 C# 类(和一些样板代码),您可以简单地将其添加到您的 C# 项目中(当然您必须编译 C/C++ 部分并使其成为 DLL)。

例如。你可能有带有类的小型 C++ 库

class Foo { public: int myMethod(Bar& bar); }
class Bar { ... }

在 SWIGing 之后,您的 C# 代码将类似于:

Bar bar = new Bar();
Foo foo = new Foo();
int result = foo(bar);
于 2012-12-03T12:41:51.457 回答