我正在用c ++编写一个小程序,它创建一个.exe,然后通过在cmd中使用参数调用它来运行.exe。我希望能够将.exe的输出显示到我运行它的cmd中。我目前有这个代码打开一个新的cmd窗口来显示输出,它是接近但不是我想要的。任何帮助都会很棒!感谢。
AllocConsole();
DWORD NumberOfBytesWritten = 0;
WriteFile( GetStdHandle(STD_OUTPUT_HANDLE), strLog1, lstrlen(strLog1), &NumberOfBytesWritten, 0);
更新:
在调用程序时,我还可以在命令窗口中使用dir > log.txt
写入文本文件,有没有办法可以更改它以便将输出定向到控制台窗口?谢谢,
答案 0 :(得分:1)
我的通灵调试功能告诉我,您的构建工具已配置为在GUI而不是控制台模式下创建应用程序。
如果您重新配置构建以便它生成控制台模式应用程序,则您不需要调用AllocConsole
或执行任何特殊操作;您将自动分配到父进程的控制台。
答案 1 :(得分:0)
您是否尝试过简单的操作,例如:
std::cout << "Print me" ;
或
std::cerr << "Print me too";
(我希望我能正确理解您要打印到启动应用程序的同一个控制台)
答案 2 :(得分:0)
已经问过这个问题:How to output to the console in C++/Windows。以下是一个似乎对您的案例有用的答案:https://stackoverflow.com/a/587792/1728537