如何显示Window和命令行提示符?

时间:2011-09-14 20:15:58

标签: c++ windows winapi

有没有办法合并显示Window和CMD?我想在我的Window应用程序中使用cmd作为调试信息记录器。

4 个答案:

答案 0 :(得分:2)

有两种方法。

  1. 您可以继续将应用程序链接为窗口化应用程序,并使用AllocConsole创建一个控制台窗口,您可以在其中输出调试信息。请注意,这只会打开内核句柄,因此您需要使用_open_osfhandle_fdopen将stdout / stderr连接到控制台。

  2. 您可以将应用程序链接为控制台应用程序,不要忘记它现在以_tmain而不是_tWinMain()开头。

答案 1 :(得分:1)

是的,这完全有可能。编写控制台应用程序并继续进行常规窗口注册,创建窗口并监听事件。请注意,应避免在与窗口消息循环相同的线程上使用阻塞标准输入(只要控制台输入操作未完成,窗口就会无响应)。

请注意,您仍然可以从窗口化应用程序allocate a console,但我不确定标准输出和标准错误是否绑定到控制台I / O缓冲区。

答案 2 :(得分:1)

任何控制台应用程序都可以通过调用CreateWindow并执行窗口应用程序之类的消息循环来管理窗口。

无论窗口应用程序(使用WinMain输入的应用程序)都可以将控制台与AllocConsole关联起来。

毕竟,它们并没有太大的不同! ; - )

答案 3 :(得分:1)

如果您只想将它​​用于调试目的,在Visual C ++环境中,为什么不使用Windows定义的宏TRACE()。它很好地用于调试。它将在Visual Studio的输出窗口中写入。这很简单。