.net和C ++应用程序之间的内部通信

时间:2011-12-09 22:55:01

标签: c# .net c++

我看到还有一些与此问题相关的帖子。但是,我想问一下,在C#.net应用程序和C ++应用程序之间交换一些消息是否有新的优雅方式?

他们在同一台机器上运行。

提前致谢。

3 个答案:

答案 0 :(得分:3)

您想要的是进程间通信(IPC),它根据定义与语言无关。

典型的解决方案包括:

  • 命名管道(也称为FIFO)
  • 邮件位置
  • 文件映射
  • 套接字
  • RPC

根据您的需要使用不同的。

以下是有关Windows支持的IPC方法的信息:http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574%28v=vs.85%29.aspx

大多数此功能都是通过WCF在C#中公开的,当然这是特定于Windows的。如果你使用Mono,那你就不走运了。

C ++没有在语言本身中定义任何IPC构造,因此无论如何都必须使用特定于平台的库。

在C#和C ++中搜索IPC示例,您将获得大量点击。

这是一篇SO帖子,可以帮助您入门:IPC Mechanisms in C# - Usage and Best Practices

答案 1 :(得分:1)

我一直使用套接字,这是我能想到的最简单的方法(虽然不是最优雅的)

答案 2 :(得分:0)

您可以使用许多机制来执行此操作。

This article列举了在Windows平台上完成进程间通信的常用方法。大多数(如果不是全部)可能同时形成C#和C ++(尽管我不愿意看到你使用C#中的DDE,尽管it has apparently been done)。