MFC 和 WPF 之间的进程间通信
Posted
技术标签:
【中文标题】MFC 和 WPF 之间的进程间通信【英文标题】:Interprocess communication between MFC and WPF 【发布时间】:2016-08-17 13:05:38 【问题描述】:我正在尝试在 mfc 应用程序和 wpf 应用程序之间建立双向通信。我从这两篇文章中得到帮助: Interprocess Communication Between .NET and MFC Using WM_COPYDATA 和 Interprocess Communication Between .NET and MFC Using C# and COPYDATA
到目前为止,我已经设法将消息从 wpf 发送到 mfc。但现在我希望 mfc 应用程序将消息发送到 wpf 应用程序。我需要做什么才能实现这一目标?
在 mfc 方面,我将句柄存储为
storedHandle = (HWND)intPtr;
之后使用这个句柄来发送消息,内容如下:
::SendMessage(pFrame->storedHandle, WM_COPYDATA, 0, 0);
但是 wpf 没有收到消息。
【问题讨论】:
显示您正在使用的实际代码。不要只放链接。一个问题可能是您将数据从 32 位程序发送到 64 位程序 有多种方法可以实现interprocess communication。使用管道可能更合适。 【参考方案1】:您应该考虑使用更现代的机制,例如 Windows Mailslots,而不是使用传统的基于窗口的通信:
对于 C#,这里有一个包装器: http://www.codeproject.com/Articles/623268/Csharp-wrapper-for-Mailslots
消息也可以使用\\.\mailslot
通过文件系统访问:
https://blog.didierstevens.com/2006/07/13/do-you-have-mailslots-on-your-windows-pc/
【讨论】:
以上是关于MFC 和 WPF 之间的进程间通信的主要内容,如果未能解决你的问题,请参考以下文章