使用ShellExecute在进程之间进行IPC

use*_*332 10 c++ winapi ipc pipe

我正在用C++编写win32 api.我有一个父进程,我正在使用它通过调用ShellExecute来运行一个新程序.

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

有人能指出一个体面/相关的教程吗?或者,如果另一种形式的IPC比管道更好,请指出我的方向.

如果它是相关的,这就是我的shell执行命令的样子:

ShellExecute(NULL, "open", "Argo\\argo.exe", NULL, NULL, 1);
Run Code Online (Sandbox Code Playgroud)

pau*_*sm4 2

在所有条件相同的情况下,Windows“命名管道”可能是一个理想的选择:

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

使用命名管道完全消除了在父级和子级之间传递任何内容的需要:父级打开以进行读取,子级在需要时打开以进行写入,所有内容都可以同步,无需任何额外的工作。