Для каких механизмов IPC требуется приложение с графическим интерфейсом? Платформа Windows

#windows #winapi #ipc

#Windows #winapi #ipc

Вопрос:

Для каких механизмов IPC требуется приложение с графическим интерфейсом? Платформа Windows.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx#base.using_data_copy_for_ipc

Следующие механизмы IPC поддерживаются Windows:

Буфер обмена

COM

Копирование данных

DDE

Сопоставление файлов

Почтовые ящики

Каналы

RPC

Сокеты Windows

Ответ №1:

Зависит от того, что вы подразумеваете под «приложением с графическим интерфейсом» — ни для одного из них технически не требуется наличие графического интерфейса; хотя для некоторых может потребоваться использование скрытых HWND / windows за кулисами, что, в свою очередь, может потребовать потока для запуска цикла обмена сообщениями. (Обратите внимание, что в Windows консольное приложение может использовать любой win32 API — поэтому единственное реальное различие между консольным приложением и приложением win32 заключается в том, выделяется ли процессу консоль автоматически при запуске; в противном случае оба приложения могут использовать один и тот же набор API и либо создавать видимые окна, либо нет.)

Насколько я помню, DDE полагается на сообщения между окнами — поэтому потребуется цикл обмена сообщениями и т.д. Но эти окна не обязательно должны быть видимыми, поэтому, с точки зрения пользователя, им не обязательно быть приложением с графическим интерфейсом.

COM поддерживает как приложения, основанные на цикле обмена сообщениями, так и те, которые в большей степени являются многопоточными в стиле unix или сервера.

Копирование данных — если вы имеете в виду WM_COPYDATA, то для этого требуется, чтобы у получателя был HWND (который может быть невидимым), но не у отправителя.

Буфер обмена обычно используется с окном, но не требует его (OpenClipboard может принимать нулевой hwnd.)

Сопоставление файлов, почтовые ячейки, RPC и сокеты Windows не требуют циклов обмена сообщениями.