当前位置:  开发笔记 > 编程语言 > 正文

如何知道我们是在控制台还是窗口应用中?

如何解决《如何知道我们是在控制台还是窗口应用中?》经验,为你挑选了1个好方法。

上下文:编程ac/c ++ win32-mfc库

如何知道我们是在控制台还是窗口应用中?



1> Kevin Loney..:

您可以通过调用win32函数GetConsoleWindow来确定当前是否有一个控制台附加到该进程.如果它返回NULL,则没有连接到该进程的控制台.但是,这不一定会告诉您是否在窗口应用程序中运行.例如,我可以有一个窗口应用程序,在启动时使用AllocConsole来为调试输出分配控制台,在这种情况下,您可以同时使用这两个控制台.我可以看到你描述的另一个问题是应用程序可能没有窗口并且没有连接控制台(例如Windows服务).

我也不得不同意litb和Martin这一点.如果你的图书馆需要知道这个,那么它可能没有足够的解耦.如果您使用它来确定发送调试输出的位置,例如最好的方法是使用cout或cerr,让使用该库的应用程序处理将流重定向到它想要的位置.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有