【问题标题】:Interprocess communication between MFC and WPFMFC 和 WPF 之间的进程间通信
【发布时间】:2016-08-17 13:05:38
【问题描述】:

我正在尝试在 mfc 应用程序和 wpf 应用程序之间建立双向通信。我从这两篇文章中得到帮助: Interprocess Communication Between .NET and MFC Using WM_COPYDATAInterprocess 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。使用管道可能更合适。

标签: c++ wpf mfc ipc interprocess


【解决方案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/

【讨论】:

    猜你喜欢
    • 2011-01-05
    • 2011-08-03
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 1970-01-01
    • 2011-01-02
    相关资源
    最近更新 更多