从.exe输出到 cmd



我正在用 c++ 编写一个小程序,它创建了一个.exe然后我通过使用 cmd 中的参数调用它来运行它。我希望能够将.exe的输出显示到我运行它的 cmd 中。我目前有这段代码,它打开一个新的cmd窗口以显示接近但不是我想要的输出。对此有任何帮助都会很棒!谢谢。

AllocConsole();
DWORD NumberOfBytesWritten = 0;
WriteFile( GetStdHandle(STD_OUTPUT_HANDLE), strLog1, lstrlen(strLog1), &NumberOfBytesWritten, 0);

更新:调用程序时,我还能够在命令窗口中使用dir > log.txt写入文本文件,有没有办法更改它以便它将输出定向到控制台窗口?谢谢

我的心理调试能力告诉我,您的构建工具配置为在 GUI 而不是控制台模式下创建应用程序。

如果重新配置生成以生成控制台模式应用程序,则无需调用AllocConsole或执行任何特殊操作;将自动将你分配到父进程的控制台。

您是否尝试过简单的操作,例如:

std::cout << "Print me" ;

std::cerr << "Print me too";

(我希望我正确理解了您要打印到启动应用程序的同一控制台)

这个问题

已经被问到:如何在C++/Windows中输出到控制台。这是一个对您来说似乎有用的答案:https://stackoverflow.com/a/587792/1728537

最新更新