【发布时间】:2013-04-03 21:22:37
【问题描述】:
我的应用程序是一个 GUI 应用程序,它通过终端(通过 cout)提供有用的(尽管是可选的)信息。
在 Windows 中,我要么显示控制台(通过编译为控制台应用程序,或动态分配它),要么不显示。
我的意图是使用控制台,如果它是从控制台运行的,但如果不是,则完全忽略控制台。 (基本上是在 Linux 和 OS X 中发生的事情)。
我不希望重定向到文件(在使用 cin 的情况下,无论如何这不是一个可行的解决方案)。
有没有办法将 Windows 中的 GUI 应用程序附加到运行它的控制台,当且仅当它从控制台运行?
【问题讨论】:
-
如果您的应用程序正在通过控制台运行,您是否只想打印到控制台?您可以使用
cout,如果程序不是从控制台启动的,它将被忽略。 -
@slavik262 我没有在 Windows 上花费太多时间,但是根据以前的经验,如果它不是控制台应用程序,打印到控制台会被忽略。 cout、stdout、printf 等是否重要?
-
见stackoverflow.com/a/12782581/5987 - 这个问题是特定于 MFC 但答案只是 Win32 调用。我已经通过 Windows 应用对其进行了测试,并且可以正常工作。
标签: c++ windows console cout cin