2012-01-23 10 views
2

私はC++のwin32 APIで作業しています。親プロセスがあり、ShellExecuteを呼び出して新しいプログラムを実行しています。ShellExecuteでのプロセス間のIPC

子プロセスが親プロセスと通信できるようにしたいと考えています(コミュニケーションは片方向に進む必要があります)。私は匿名パイプがこれに適していると思う、私はCreatePipe関数を使用してパイプを作成する方法を発見したが、私はどのようにShellExecuteコマンドを使用して子プロセスにパイプを与えるのか分からない。

誰でもこれに関する上品な/関連するチュートリアルを指摘できますか?あるいは、IPCの他の形式がパイプよりもうまく機能するなら、その方向で私に指摘してください。その関連する場合

、このコマンドがどのように見えるか、私のシェルが実行される:

ShellExecute(NULL, "open", "Argo\\argo.exe", NULL, NULL, 1); 

答えて

2

等しい、Windowsの「名前付きパイプ」であるすべてのものが行くための理想的な方法かもしれません:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365590%28v=vs.85%29.aspx

名前付きパイプを使用すると、親と子の間でANYTHINGを渡す必要が完全になくなります。親は読み込みのために開き、子は必要なときに書き込み用に開き、余分な作業をせずにすべてを同期させます。

+0

はい、匿名ではなく名前付きで使用すると、2つのプロセスが接続するのが簡単になります。 –

関連する問題