質問

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">こちらでソケットに関する情報をご覧ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top