我正在开发一个VC ++ windows应用程序,它支持GUI以及非基于GUI的执行。非基于GUI的执行是为脚本目的而设计的。现在,如果我在GUI模式下执行该应用程序,我可以在出现错误或异常时显示用户确认的消息框。但是,如果应用程序以静默方式执行,那么我想在命令提示符下显示一些错误消息,该怎么做?我尝试了AllocConsole(...),但它会弹出另一个窗口。我想避免这种情况。我的用例如下 -
CMD> myapplication.exe -silent
CMD> Error XXXX: Application message.
此处错误消息应显示在同一提示符上,而不是从AllocConsole(...)弹出的控制台上显示。
任何帮助或想法?
谢谢, Omky
答案 0 :(得分:0)
这不是一个控制台应用程序,因此当控制台运行时,它会为Windows应用程序生成另一个进程,它不会将其std映射到控制台,因为控制台会在应用程序启动后立即返回(即它不会等它终止)。
在这种情况下,您可以执行以下操作(kernel32):
试
AttachConsole(-1);
如果你得到它那就好了
如果不是意味着您没有从控制台运行,则需要使用
AllocConsole(...);
如果你连接到控制台,这将看起来很奇怪,因为你可以输入并与控制台交互以运行其他内容,而你的应用程序将向其发送文本。