我正在用 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