寻找教程或基本信息,让我开始在 C# 中为初学者实现 C/C++ API [关闭]

Posted

技术标签:

【中文标题】寻找教程或基本信息,让我开始在 C# 中为初学者实现 C/C++ API [关闭]【英文标题】:Looking for tutorial or basic information to get me started on implementing C/C++ API in c# for beginners [closed] 【发布时间】:2012-12-03 12:10:59 【问题描述】:

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

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

我正在考虑在 C# 中实现一个 c/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://***.com/questions/9747607/c-apivs-2005-integrate-into-c-sharp-vs-2010project (没有给出答案)

talking to C from C# (看起来不错,一些关于 Pinvoke 的东西)

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

非常感谢任何帮助。 干杯

【问题讨论】:

对于使用类的 C++ API,您将需要 C++/CLI(更易于使用)或 COM(也可用于非 .NET 语言)包装器。 P/Invoke 仅适用于简单的函数。 你的问题到底是什么? 嗨 Ramhound,我想使用一些用 c 或 c++ 编写的 API(包装它们或以其他方式),以便我可以在我的 c# 项目中使用它们。我试图浏览有关如何执行此操作的信息,但不知所措,需要一些帮助才能开始。 (这样清楚一点吗?) 【参考方案1】:

试试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);

【讨论】:

我听说过 SWIG,你的推荐让我觉得我可以试一试,看看它是如何工作的。我会检查一些教程。这可能是一个不错的方法。一个 API 是用来做声音的,所以它可能不是微不足道的。另一个 API 现在可能已经过时了……正在考虑使用另一个 GUI 工具包。

以上是关于寻找教程或基本信息,让我开始在 C# 中为初学者实现 C/C++ API [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

有关如何在 c# 中为 Windows 7 任务栏编码所需的信息

C# 教程

为 C# 寻找干净的 WinForms MVC 教程 [关闭]

专业实训9.7

ROS2初学者教程(Dashing和Eloquent)Windows

编写基本外壳