在两个程序运行时,将信息从C#应用程序传递到C ++应用程序的最佳方法是什么?

时间:2009-02-13 17:47:10

标签: c# c++ ipc

将Windows窗体C#app中的信息传递给MFC C ++应用程序时,最好的方法是什么?我不需要发送太多,只需要一个小字符串。

谢谢, 杰夫

4 个答案:

答案 0 :(得分:4)

列出IPC选项列表:

  • 内存映射文件。在C ++中很容易,在没有指针的情况下很难用C#,尴尬的握手
  • WM_COPYDATA。两者都很容易,找到你需要的窗口把手很棘手
  • 剪贴板。两个都很容易,非常尴尬的握手
  • COM。 out-of-proc是一只野兽,忘了它
  • 邮筒。不适合一对一沟通
  • 管。在.NET 3.5中很容易,可以在C ++中使用,但要做得对,有点棘手
  • 套接字。两者都很容易,很难放弃。

答案 1 :(得分:3)

使用命名管道,请参阅此posting

答案 2 :(得分:0)

如果C ++应用程序有一个主窗口,请查看使用C#app中的SendMessage函数(通过P / Invoke)将WM_COPYDATA消息发送到C ++应用程序。

http://msdn.microsoft.com/en-us/library/ms649011%28VS.85%29.aspx

答案 3 :(得分:0)

MailSlot api虽小又简单但需要P / Invoke才能在c#中使用,并且可以在本地机器之外使用,因此需要小心。 见我的answer here

命名管道可能更强大,但这是另一种选择。