2016-08-17 2 views
0

Я пытаюсь установить двустороннюю связь между приложением mfc и приложением wpf. Я пользуюсь этими двумя статьями: Interprocess Communication Between .NET and MFC Using WM_COPYDATA и Interprocess Communication Between .NET and MFC Using C# and COPYDATAМежпроцессная связь между MFC и WPF

До сих пор мне удалось отправить сообщение с wpf на mfc. Но теперь я хочу, чтобы приложение mfc отправило сообщение в приложение wpf. Что мне нужно сделать для этого?

На ках стороны, я храню ручку, как

storedHandle = (HWND)intPtr;

и позже, используя эту ручку, чтобы отправить сообщение с помощью следующей строки:

::SendMessage(pFrame->storedHandle, WM_COPYDATA, 0, 0);

Но МОФ не получение сообщение.

+0

Показать фактический код, который вы используете. Не просто поместите ссылку. Одна из проблем может заключаться в том, что вы отправляете данные с 32-разрядной программы на 64-разрядную программу. –

+0

Существует несколько способов реализации [межпроцессного взаимодействия] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa365574 .aspx). Использование труб потенциально более уместно. – IInspectable

ответ

0

Вместо использования унаследованного окна на основе связи следует рассмотреть более современный механизм, как Windows, почтовые слоты:

Для 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/

Смежные вопросы