如何在GUI应用程序中写入控制台

时间:2008-10-10 17:15:33

标签: windows winapi console-application

背景:我们开发了win32应用程序,并在Windows上使用“Thompson Toolkit”为我们提供了一个类似unix的shell,我们将它们用作命令行。

我们有一个GUI程序(带有WinMain和消息循环),我们想要写入控制台,但是printf等不起作用,即使我们从控制台启动程序也是如此。我们如何从GUI程序写入控制台?我们需要在那里打印文本,以便自动构建系统可以显示错误消息等等。

感谢。

4 个答案:

答案 0 :(得分:5)

简而言之,您需要连接控制台。有关详细信息和随时可用的代码,请参阅http://www.codeproject.com/KB/dialog/ConsoleAdapter.aspx

答案 1 :(得分:1)

不是登录到控制台,而是登录到文件,然后使用单独的gui应用程序跟踪文件。这使控制台保持整洁,并为您提供更持久的日志记录,这有时非常有用。有各种各样的图书馆可以为您完成大部分工作,或者您可以保持简单,只需自己动手。

答案 2 :(得分:0)

在Visual Studio项目设置中的某个位置,您可以打开控制台,假设您使用的是VS. (不能说因为我目前没有它在哪里)

答案 3 :(得分:0)

基本上,您必须自己使用AllocConsoleAttachConsole创建一个控制台。之后,您必须获得GetStdHandle的标准句柄,并在_open_osfhandle的帮助下“将C运行时文件描述符与现有的操作系​​统文件句柄相关联。”

返回的句柄可用于覆盖crt stdinstdout。之后,printf之类的所有crt方法都应该有效。