Межпроцессное взаимодействие на windows - PullRequest
4 голосов
/ 17 июня 2009

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

Ответы [ 6 ]

4 голосов
/ 17 июня 2009
4 голосов
/ 17 июня 2009

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

2 голосов
/ 18 июня 2009

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

2 голосов
/ 17 июня 2009

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

1 голос
/ 17 июня 2009

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

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

0 голосов
/ 18 июня 2009

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

См. здесь для деталей первого и здесь для некоторой информации о сокетах.

...