从.exe输出到cmd

时间:2014-02-19 09:10:27

标签: c++ windows cmd exe std

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

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

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

3 个答案:

答案 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