Domanda

Ho uno script TCL in esecuzione su Windows. Devo comunicare con una vecchia app vc ++ 6 in esecuzione in un processo diverso. Devo avere una comunicazione a 2 vie. In Linux userei dbus, ma quale strategia IPC dovrei usare per Windows?

È stato utile?

Soluzione

Tcl su Windows ha il supporto dde integrato (consultare i documenti per il comando dde) che potrebbe aiutare se l'altra applicazione lo supporta. Un'altra opzione è l'estensione TWAPI (Tcl Windows API), che dispone di funzionalità per inviare input da tastiera e mouse a un'altra applicazione, vedere http://twapi.magicsplat.com/input.html .

Altri suggerimenti

Boost.interprocess ha vari modi in cui come memoria condivisa e messaggio che passa per C ++. Puoi sempre iniziare da lì e vedere cosa è compatibile con il tuo script.

Che ne dici di named pipe?

I vecchi socket semplici funzionano perfettamente in TCL su Windows (e Linux e ovunque sia implementato TCP / IP :)

Un elenco di opzioni da MSDN: http: / /msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx

Se vuoi qualcosa di più 'enterprisy', c'è anche Coda dei messaggi di Windows .

Dal punto di vista di Tcl, il modo più semplice, se l'app VC6 lo consente, sarebbe di ottenere TCL per avviare l'app VC e quindi utilizzare stdin e stdout per comunicare. Se ciò non è possibile, il comando socket Tcl consente di stabilire una connessione socket TCP con un altro processo.

Vedi qui per i dettagli del primo e < a href = "http://www.tcl.tk/man/tcl8.4/TclCmd/socket.htm" rel = "nofollow noreferrer"> qui per alcune informazioni sui socket.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top