#windows #winapi #ipc
#Windows #winapi #ipc
Вопрос:
Для каких механизмов IPC требуется приложение с графическим интерфейсом? Платформа Windows.
Следующие механизмы IPC поддерживаются Windows:
Буфер обмена
COM
Копирование данных
DDE
Сопоставление файлов
Почтовые ящики
Каналы
RPC
Сокеты Windows
Ответ №1:
Зависит от того, что вы подразумеваете под «приложением с графическим интерфейсом» — ни для одного из них технически не требуется наличие графического интерфейса; хотя для некоторых может потребоваться использование скрытых HWND / windows за кулисами, что, в свою очередь, может потребовать потока для запуска цикла обмена сообщениями. (Обратите внимание, что в Windows консольное приложение может использовать любой win32 API — поэтому единственное реальное различие между консольным приложением и приложением win32 заключается в том, выделяется ли процессу консоль автоматически при запуске; в противном случае оба приложения могут использовать один и тот же набор API и либо создавать видимые окна, либо нет.)
Насколько я помню, DDE полагается на сообщения между окнами — поэтому потребуется цикл обмена сообщениями и т.д. Но эти окна не обязательно должны быть видимыми, поэтому, с точки зрения пользователя, им не обязательно быть приложением с графическим интерфейсом.
COM поддерживает как приложения, основанные на цикле обмена сообщениями, так и те, которые в большей степени являются многопоточными в стиле unix или сервера.
Копирование данных — если вы имеете в виду WM_COPYDATA, то для этого требуется, чтобы у получателя был HWND (который может быть невидимым), но не у отправителя.
Буфер обмена обычно используется с окном, но не требует его (OpenClipboard может принимать нулевой hwnd.)
Сопоставление файлов, почтовые ячейки, RPC и сокеты Windows не требуют циклов обмена сообщениями.