Question

J'ai un script TCL en cours d'exécution sur Windows. J'ai besoin de communiquer avec une ancienne application vc ++ 6 s'exécutant dans un processus différent. J'ai besoin d'une communication bidirectionnelle. Sous Linux, j'utiliserais dbus, mais quelle stratégie IPC devrais-je utiliser pour Windows?

Était-ce utile?

La solution

Tcl sur Windows a le support DDE intégré (voir la documentation de la commande dde), ce qui pourrait aider si l’autre application le prend en charge. Une autre option est l'extension TWAPI (API Tcl Windows), qui permet d'envoyer des entrées clavier et souris à une autre application, voir http://twapi.magicsplat.com/input.html .

Autres conseils

Boost.interprocess peut être utilisé de différentes manières en tant que mémoire partagée et transmission de messages pour C ++. Vous pouvez toujours commencer par là et voir ce qui est compatible avec votre script.

Qu'en est-il des des tubes nommés?

Les vieux sockets classiques fonctionnent parfaitement dans TCL sous Windows (et Linux, et partout où TCP / IP est implémenté):

Liste d'options de MSDN: http: / /msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx

Si vous voulez quelque chose de plus "d'entreprise", File d'attente de messages Windows .

Du point de vue de Tcl, le moyen le plus simple, si votre application VC6 le permet, serait d’amener TCL à démarrer l’application VC, puis à utiliser stdin et stdout pour communiquer. Si cela n’est pas possible, la commande socket Tcl vous permet d’établir une connexion socket TCP avec un autre processus.

Voir ici pour plus d'informations sur le premier et < a href = "http://www.tcl.tk/man/tcl8.4/TclCmd/socket.htm" rel = "nofollow noreferrer"> ici pour certaines informations sur les sockets.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top