Как я могу общаться между двумя плагинами C ++ MFC? - PullRequest
1 голос
/ 06 октября 2009

У меня есть плагин для приложения C ++ MFC. Я работаю с разработчиком другого плагина для того же приложения, который пытается получать уведомления о событиях в моем коде. Оба плагина представлены в виде c ++ dll.

Как я могу передавать сообщения от моего плагина к его плагину? Решение должно быть устойчивым к несовпадающим версиям наших двух плагинов, а также к хост-приложению. Уведомления отображаются во время движения контрольной точки, поэтому несколько раз в секунду.

Я мог бы установить механизм обратного вызова, при котором после загрузки его плагин вызывает функцию в моем плагине с указателем функции. Нам не гарантируется какой-либо порядок загрузки, но мы могли бы просто периодически проверять.

Я знаю, что в Win32 есть система обмена сообщениями, но я не совсем уверен, как она работает. Мы могли бы добавить ловушку, и я мог бы отправлять сообщения, но я немного не уверен в том, как мы синхронизируем идентификатор сообщения или какие-либо подробности, кроме того, что я сказал, на самом деле.

Есть еще идеи, как это сделать?

Ответы [ 2 ]

2 голосов
/ 06 октября 2009

Я немного размышляю о том, как мы синхронизируем идентификатор сообщения

Используйте API RegisterWindowMessage .

1 голос
/ 06 октября 2009

Посмотрите на эту статью здесь, она показывает доступные механизмы IPC в Windows . Я мог бы попробовать COM, Mailslots, Pipes или Shared Memory (сопоставление файлов) в вашем случае, в дополнение к сообщениям Windows, которые вы уже упоминали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...