从 Windows MFC 对话框重定向的 STDOUT 和 STDERR 仅适用于第一个 createprocess child

问题描述 投票:0回答:0

我有一个工作的 MFC 对话框应用程序必须调用 2 个其他程序并等待它们。这两个程序都只能以 EXE 形式使用,并且使用 STDOUT 和/或 STDERR 以及使用普通文件。对话程序将 STDOUT 和 STDERR 重定向到程序 1 的 2 个单独文件和程序 2 的其他 2 个文件,使用 _wfreopen_s 然后关闭并将 STD... 恢复到调用之间的系统默认值。程序 1 完美运行。程序 2 返回代码为 0,但是程序内部的任何一个重定向文件都没有输出,尽管对话框可以在程序 2 运行之前和之后对它们使用 cout。我对两个程序都使用了相同的进程标志,并在两个程序中都继承了父级的环境。任何人都可以给我一些关于如何使它正常工作的提示吗?我的 MFC 应用程序是使用 VS2019 编写的,带有 C++ 2017 标准编译器版本。

createprocess
© www.soinside.com 2019 - 2024. All rights reserved.