0

我正在开发一个支持 GUI 和非 GUI 执行的 VC++ Windows 应用程序。非基于 GUI 的执行是为脚本目的而设计的。现在,如果我在 GUI 模式下执行该应用程序,我可以在出现错误或异常时显示消息框以供用户确认。但是,如果应用程序以静默模式执行,那么我想在命令提示符下显示一些错误消息,该怎么做?我试过 AllocConsole(...) 但它会弹出另一个窗口。我想避免这种情况。我的用例如下 -

CMD> myapplication.exe -silent
CMD> Error XXXX: Application message.

此处错误消息应显示在同一提示上,而不是 AllocConsole(...) 弹出的控制台上。

有什么帮助或想法吗?

谢谢, 奥姆基

4

1 回答 1

0

这不是控制台应用程序,因此当控制台运行时,它会为 Windows 应用程序生成另一个进程,该进程不会将其标准输出映射到控制台,因为控制台会在应用程序启动后立即返回(即它不会等待它终止)。

在这种情况下,您可以执行以下操作(kernel32):

尝试

附加控制台(-1);

如果你得到它那么它很好

如果不是,则表示您没有从控制台运行,您需要使用

AllocConsole(...);

如果您附加到控制台,这将看起来很奇怪,因为您将能够键入并与控制台交互以在其中运行其他内容,而您的应用程序将向其发送文本。

于 2013-04-24T04:47:43.150 回答