应用程序从启动应用程序的地方登录命令提示符

Application logs on the command prompt from where application is being launched

我有一个 MFC 应用程序并从命令提示符启动它的 .exe。我想要实现的是,我想在同一命令提示符下显示来自这个启动的应用程序的任何日志。

我写过这段代码:

AttachConsole(ATTACH_PARENT_PROCESS);
WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), errorMessage, ((string)errorMessage).length(), NULL, NULL);
FreeConsole();

但是这段代码在下一个提示符下写日志是这样的:

c:\Users>application.exe

c:\Users>log line

这里我想要在同一个提示上的日志,像这样:

c:\Users>application.exe

log line

我被这个问题困住了。

程序运行良好;您看到的是 cmd.exe 已经为您准备好的命令提示符,因为您的程序已分离并且 运行 与控制台隔离。只要你不分离,你的程序就会一直占用控制台window。

我建议您通过 OutputDebugString 函数实现日志记录。它使您可以轻松地在调试器中查看结果,您也可以在没有调试器的情况下使用 DebugView 等工具查看该文本(曾几何时 sysinternals.com,现在可在 Microsoft 的网站上获得)