在 C 中的 win32 编程中:
在另一个 win32 程序中执行 win32 控制台程序的最佳方法是什么,并让开始执行的程序捕获输出?目前我让程序将输出重定向到一个文件,但我确定我必须能够打开某种管道?
使用CreateProcess
Win32 API 启动子进程。
向它传递一个STARTUPINFO
带有hStdInput
,hStdOutput
和句柄的结构,这些hStdError
句柄设置为您打开的文件句柄(真实文件或内存映射文件都应该工作)。您不需要指定所有三个,您可以只重定向您真正需要的那些;最常见的情况是hStdOutput
。
如果要与子进程通信(通过hStdInput
),则需要通过调用等待它初始化WaitForInputIdle
。