有没有办法显示窗口和CMD的组合?我想在我的Window应用程序中使用cmd作为调试信息记录器。如何显示窗口和命令行提示符?
回答
有两种方法。
你可以继续你的应用程序作为窗口应用程序链接,并使用
AllocConsole
创建一个控制台窗口中,你可以输出你的调试信息。请注意,这只会打开内核句柄,因此您需要使用_open_osfhandle
和_fdopen
将stdout/stderr连接到控制台。您可以将您的应用程序作为控制台应用程序链接,不要忘记它现在以
_tmain
而不是_tWinMain()
开头。
是的,这是完全可能的。编写一个控制台应用程序并继续进行常规窗口注册,创建一个窗口并监听事件。请注意,应避免在与窗口消息循环相同的线程上使用阻塞标准输入(只要控制台输入操作未完成,窗口将不响应)。
请注意,您仍然可以从窗口化应用程序中使用allocate a console,但我不确定标准输出和标准错误是否绑定到控制台I/O缓冲区。
无论控制台应用程序如何通过调用CreateWindow
来执行窗口应用程序的消息循环来管理窗口。
而任何窗口应用程序(与WinMain
一起输入的应用程序)可以将控制台与AllocConsole
关联。
毕竟他们没有太大的不同! ;-)
调用'AllocConsole'是很容易的部分;获得连接到控制台的标准输入和输出不是:-) –
如果你有一个GUI应用程序,你不能在启动过程中重新使用已经存在的控制台 – Joey
@Kerrek:我通常打开一个朝向“CON”的fstream,文件。 –
如果您只是将它用于调试目的,在Visual C++环境中,为什么不使用Windows定义的宏TRACE()。它很好地服务于调试的目的。它将写入Visual Studio的输出窗口。这很简单。
- 1. 如何运行(不显示命令提示窗口)汞柱在后台命令?
- 2. 立即窗口式命令提示符?
- 3. 要在命令提示符窗口
- 4. 从Javascript/XPCOM叫不显示命令提示符窗口
- 5. 如何从VBScript在命令提示符窗口中使用命令行显示ECHO
- 6. 命令完成后获取命令提示符窗口内容
- 7. 如何使用命令提示符窗口运行和编译c
- 8. 如何确定谁调用了命令提示符窗口
- 9. 如何:关闭窗口命令提示符应用程序
- 10. 如何隐藏python命令提示符窗口
- 11. 如何在左上角打开命令提示符窗口?
- 12. 如何更改命令提示符窗口
- 13. 如何在Ruby中关闭命令提示符窗口?
- 14. 如何关闭命令提示符窗口
- 15. 如何防止COM Server EXE打开命令提示符窗口
- 16. TMUX:在显示命令提示时显示显示窗格?
- 17. 命令提示符窗口在执行选择后关闭
- 18. 从命令提示符窗口执行MySql
- 19. 批处理窗口命令写入提示符但不执行
- 20. 放弃命令提示窗口(WinForms)
- 21. 显示%(的Windows 10命令提示符)
- 22. 运行命令提示符命令
- 23. 如何在弹出窗口显示时运行命令?
- 24. C#在命令提示符下运行命令并显示命令
- 25. autohotkey显示主窗口命令
- 26. QProcess不显示命令窗口
- 27. 问:如何在命令提示符中显示中文字符
- 28. Postgresql-在命令提示符窗口中提供密码pg_dump
- 29. 命令提示不显示
- 30. 窗口的命令提示符 - 将文件与特殊字符
也许[试试这个](http://dslweb.nwnexus.com/~ast/dload/guicon.htm)... –
便宜的选项使用OutputDebugString + dbmon.exe从sdk/sysinternals调试视图 –
为您调试或为最终用户? (编辑:我问这是因为我在考虑'刚才提到的'OutputDebugString'] – AJG85