在C++和C#之间如何进行通信?

3
我想在我的应用程序中同时使用C++和C#。
C#用于GUI设计,而C++用于处理。
但是我对此一无所知。如何在它们之间进行通信。
我不知道从哪里开始研究。
有人能告诉我关于这项技术的概述吗?如果有人有这个主题的文档,请给我。
我正在使用Visual Studio 2010进行开发。
非常感谢,
T&TGroup

1
以下是一个关于如何在C#中使用C++库的示例。http://www.functionx.com/csharp2/libraries/cppcli.htm - v01d
3
重复?https://dev59.com/cHRB5IYBdhLWcg3wl4Sc您想知道如何在C#中调用C库。 - Guillaume
它们非常有用,我会阅读它们。谢谢大家。 - TTGroup
4个回答

4
您正在寻找的技术是C++/CLI,这是一种专有的C++语言扩展,允许与.Net代码交互。
基本思路是:您可以像编写可移植的ISO C++库一样编写您的C++库。然后,您可以为那些您想从C#(或任何其他.Net语言)调用的C++组件添加一个薄包装层,该包装层使用C++/CLI编写。
请注意,C++/CLI仅适用于编写与.Net交互的代码。不要尝试在CLI中编写实现,因为这将导致代码不可移植,并且可能比纯C++版本更难维护。

2

这取决于您的应用程序架构,例如,您可以创建两个不同的应用程序,一个是核心应用程序,另一个是GUI应用程序,并通过消息传递进行通信。

在Windows上,您可以使用Windows 消息队列,让这两个端点相互通信。


1
你可以使用C++ CLI或本地的C++。C++ CLI是托管代码,而本地的C++将不受CLR的管理。两者之间的选择取决于您的使用情况。 C++ CLI存在某些限制。

1

这完全取决于架构和需求。您可以使用C++(lib)编写处理指令并在GUI中使用它们。也可以轻松地在VS 2010中完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接