質問
WindowsでTCLスクリプトを実行しています。別のプロセスで実行されている古いvc ++ 6アプリと通信する必要があります。双方向のコミュニケーションが必要です。 Linuxではdbusを使用しますが、WindowsにはどのIPC戦略を使用する必要がありますか?
解決
WindowsのTclにはddeサポートが組み込まれています(ddeコマンドのドキュメントを参照)。これは、他のアプリケーションがこれをサポートしている場合に役立ちます。別のオプションはTWAPI(Tcl Windows API)拡張機能です。これには、キーボードおよびマウス入力を別のアプリケーションに送信する機能があります。 http://twapi.magicsplat.com/input.html 。
他のヒント
Boost.interprocess にはさまざまな方法があります。 C ++の共有メモリおよびメッセージパッシングとして。いつでもそこから始めて、スクリプトと互換性があるものを確認できます。
Windows(およびLinux、およびTCP / IPが実装されているすべての場所:)上のTCLでは、プレーンソケットが素晴らしく機能します。
MSDNからのオプションのリスト: http:/ /msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx
さらに「エンタープライズ」なものが必要な場合は、 Windowsメッセージキュー。
Tclの観点から見ると、VC6アプリで許可されている場合の最も簡単な方法は、TCLにVCアプリを起動させてから、stdinとstdoutを使用して通信することです。それが不可能な場合、Tclソケットコマンドを使用すると、別のプロセスとのTCPソケット接続を確立できます。
最初の詳細と< a href = "http://www.tcl.tk/man/tcl8.4/TclCmd/socket.htm" rel = "nofollow noreferrer">こちらでソケットに関する情報をご覧ください。