在 C++ 和 C# 之间进行通信?
Posted
技术标签:
【中文标题】在 C++ 和 C# 之间进行通信?【英文标题】:Communicating between C++ and C#? 【发布时间】:2012-03-07 11:33:24 【问题描述】:我想在我的应用程序中同时使用 C++ 和 C#。
C# 用于 GUI 设计,C++ 用于处理。
但我对此一无所知。它们之间如何通信。
我不知道我必须从哪里开始研究。
谁能告诉我有关这项技术的概述?如果有人有关于这个主题的文件,请给我。
我正在使用 Visual Studio 2010 进行开发。
非常感谢,
T&T集团
【问题讨论】:
这是一个关于如何在 c# 中使用 c++ 库的示例。 functionx.com/csharp2/libraries/cppcli.htm 重复? ***.com/questions/574801/call-c-library-in-c-sharp 它们非常有用,我会阅读它们。谢谢大家。 【参考方案1】:您正在寻找的技术是 C++/CLI,它是 C++ 的专有语言扩展,允许与 .Net 代码交互。
基本思想是:您可以像以往一样使用可移植的 ISO C++ 编写 C++ 库。然后,您在 C++/CLI 中为您想从 C#(或任何其他 .Net 语言)调用的那些 C++ 组件添加一个瘦包装器。 请注意,C++/CLI 仅用于编写与 .Net 交互的代码。不要试图在 CLI 中编写实现,因为您最终会得到不可移植的代码,并且可能比纯 C++ 版本更难维护。
【讨论】:
【参考方案2】:这取决于您的应用程序的架构应该是什么,例如,您可以创建两个不同的应用程序,一个是核心,另一个是 GUI,并通过消息传递进行通信。
在 Windows 上,您可以使用例如 Windows message queue 让两个端点相互通信。
【讨论】:
【参考方案3】:您可以使用 C++ CLI 或本机 C++。 C++ CLI 是托管代码,而本机 c++ 将不受 CLR 管理。两者之间的选择取决于您的使用情况。 C++ CLI 有一些限制。
【讨论】:
【参考方案4】:这也完全取决于架构和要求。您可以在 C++ (lib) 中编写处理指令,并在 GUI 中使用它们。也可以在 VS 2010 中轻松完成
【讨论】:
以上是关于在 C++ 和 C# 之间进行通信?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用标准输入和标准输出在 C# 和 ruby 进程之间进行通信