Сейчас я работаю над несколькими проектами C ++, которые включают в себя несколько простых IPC с использованием оконных сообщений. В ряде случаев некоторые дополнительные данные передаются с оконными сообщениями, помещая данные в сегмент совместно используемой памяти, а затем передавая указатель в разделяемую память с помощью вызова SendMessage . Повторять это все время раздражает, но прежде чем разрешить это скучное повторение, изобретая еще одну систему IPC, я хотел бы спросить:
Существует ли существующая структура, которая удовлетворяет критериям?:
- Написано на C или C ++ (здесь мы используем MSVC)
- Как можно меньше зависимостей; в лучшем случае это всего лишь несколько исходных файлов, которые используют обычные стандартные библиотеки C ++ и Windows и которые можно скомпилировать непосредственно в приложение / библиотеку.
- Работает в Windows XP и новее
- Построен на оконных сообщениях плюс сегмент общей памяти
- Правильное сообщение об ошибке было бы очень желательно (удаленный процесс исчез, удаленный процесс не понимает данное сообщение, несоответствие аргумента и т. Д.)
Для чего бы то ни было, COM на самом деле не вариант для нас, так как с ним так больно работать (если только вы не начнете использовать всевозможные обертки поверх него, которых мы бы хотели избежать). Мне действительно не нужны интерфейсы и все такое; просто удобный способ отправки сообщений с (в лучшем случае произвольными) аргументами туда-сюда с небольшой обработкой ошибок. Кроме того, я отказался от DBUS за то, что он сделал гораздо больше, чем мне нужно.