2012-01-23 53 views
2

我正在使用C++的win32 API。我有一个父进程,我使用它通过调用ShellExecute运行一个新程序。IPC与进程之间的ShellExecute

我希望子进程能够与父进程通信(通信只需要一种方式)。我认为一个匿名管道适用于此,我已经发现如何使用CreatePipe函数创建管道,但我不确定如何使用ShellExecute命令将管道提供给子进程。

任何人都可以指出一个体面的/相关的教程呢?或者,如果其他形式的IPC比管道更好,请向我指出这个方向。

在情况下,其相关的,这是我的shell执行什么命令如下:

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

使用命名管道完全消除了在父代和子代之间传递任何东西的需要:父代打开以供阅读,孩子打开时只需要写入,所有内容都是同步的,无需任何额外的工作。

+0

是的,使用named而不是匿名使两个进程连接变得微不足道。 –