English 中文(简体)
在C#应用程序和C++应用程序同时运行时,最好的传递信息的方式是什么?
原标题:
  • 时间:2009-02-13 17:47:09
  •  标签:

当Windows Forms C#应用程序和MFC C++应用程序正在运行时,最好的传递信息的方式是什么? 我不需要发送很多东西,仅仅是一个小字符串。

Thanks, Jeff

问题回答

依次列出IPC选项:

  • Memory mapped files. Easy in C++, tough in C# without pointers, awkward handshaking
  • WM_COPYDATA. Easy in both, tricky to find the window handle you ll need
  • Clipboard. Easy in both, very awkward handshaking
  • COM. Out-of-proc is a beast, forget about it
  • Mailslots. Not suitable for one-to-one communication
  • Pipes. Easy in .NET 3.5, do-able in C++ but a bit tricky to get right
  • Sockets. Easy in both, hard to pass up.

使用命名管道,请参阅此帖子

如果C++应用程序有一个主窗口,请考虑在C#应用程序中使用SendMessage函数(通过P / Invoke)向C++应用程序发送WM_COPYDATA消息。

将此翻译为汉语:http://msdn.microsoft.com/en-us/library/ms649011%28VS.85%29.aspx

MailSlot api is small and simple but requires P/Invoke to use from c# and can go outside your local machine so needs care. see my answer here

命名管道可能更加健壮,但这是另一种选择。





相关问题
热门标签