有没有办法合并显示Window和CMD?我想在我的Window应用程序中使用cmd作为调试信息记录器。
答案 0 :(得分:2)
有两种方法。
您可以继续将应用程序链接为窗口化应用程序,并使用AllocConsole
创建一个控制台窗口,您可以在其中输出调试信息。请注意,这只会打开内核句柄,因此您需要使用_open_osfhandle
和_fdopen
将stdout / stderr连接到控制台。
您可以将应用程序链接为控制台应用程序,不要忘记它现在以_tmain
而不是_tWinMain()
开头。
答案 1 :(得分:1)
是的,这完全有可能。编写控制台应用程序并继续进行常规窗口注册,创建窗口并监听事件。请注意,应避免在与窗口消息循环相同的线程上使用阻塞标准输入(只要控制台输入操作未完成,窗口就会无响应)。
请注意,您仍然可以从窗口化应用程序allocate a console,但我不确定标准输出和标准错误是否绑定到控制台I / O缓冲区。
答案 2 :(得分:1)
任何控制台应用程序都可以通过调用CreateWindow
并执行窗口应用程序之类的消息循环来管理窗口。
无论窗口应用程序(使用WinMain
输入的应用程序)都可以将控制台与AllocConsole
关联起来。
毕竟,它们并没有太大的不同! ; - )
答案 3 :(得分:1)
如果您只想将它用于调试目的,在Visual C ++环境中,为什么不使用Windows定义的宏TRACE()。它很好地用于调试。它将在Visual Studio的输出窗口中写入。这很简单。