Межпроцессное взаимодействие в Windows

У меня есть сценарий TCL, работающий в Windows. Мне нужно связаться со старым приложением vc++ 6, работающим в другом процессе. Мне нужна двухсторонняя связь. В Linux я бы использовал dbus, но какую стратегию IPC мне следует использовать для Windows?


person Byron Whitlock    schedule 17.06.2009    source источник


Ответы (6)


Tcl в Windows имеет встроенную поддержку dde (см. документацию по команде dde), которая может помочь, если другое приложение поддерживает это. Другим вариантом является расширение TWAPI (Tcl Windows API), которое имеет средства для отправки ввода с клавиатуры и мыши в другое приложение, см. http://twapi.magicsplat.com/input.html .

person Colin Macleod    schedule 18.06.2009
comment
Идеально. Как раз то, что я искал. - person Byron Whitlock; 19.06.2009

Boost.interprocess имеет различные способы, такие как память и передача сообщений для C++. Вы всегда можете начать с этого и посмотреть, что совместимо с вашим сценарием.

person rlbond    schedule 17.06.2009

Как насчет именованных каналов?

person aJ.    schedule 17.06.2009

Обычные старые сокеты отлично работают в TCL в Windows (и в Linux, и везде, где реализован TCP/IP :)

person Nikolai Fetissov    schedule 17.06.2009

Список параметров из MSDN: http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx

Если вам нужно что-то более «предпринимательское», есть также Очередь сообщений Windows. .

person Corbin March    schedule 17.06.2009

С точки зрения Tcl самым простым способом, если ваше приложение VC6 это позволяет, было бы заставить TCL запустить приложение VC, а затем использовать стандартный ввод и стандартный вывод для связи. Если это невозможно, команда сокета Tcl позволяет вам установить соединение через сокет TCP с другим процессом.

Подробнее о первом и здесь для получения некоторой информации о сокетах.

person Jackson    schedule 17.06.2009