码迷,mamicode.com
首页 > Windows程序 > 详细

在Windows程序中启用console输出-2016.01.04

时间:2016-01-04 10:05:04      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

在某些时候,我们可能需要在Win32窗口应用程序中打开控制台窗口,打印一些消息,或者作为当前程序的另外一个人机交互界面,或者为了帮助调试程序。为了达到这种效果,需要了解函数AllocConsole和C-Runtime的freopen函数。
AllocConsole函数会为当前的窗口程序申请一个Console窗口,下面MSDN对AllocConsole的介绍:

The AllocConsole function allocates a new console for the calling process.

BOOL AllocConsole(void);

函数调用成功,返回非零值;调用失败,则返回0。

 

在为当前窗口程序申请到console后,我们需要调用C-Runtime的freopen函数将标准输出(stdout)重定位到新申请的console。
freopen的原型如下:

FILE *freopen(const char *path, const char *mode, FILE *stream);

其中"CONOUT$"是指代当前console的特殊字符串。

示例代码:

if(AllocConsole())
{              
     freopen( "CONOUT$", "w+t", stdout ); 
    freopen( "CONOUT$", "w+t", stderr ); 
}

在Windows程序中启用console输出-2016.01.04

标签:

原文地址:http://www.cnblogs.com/zhouLee/p/5097865.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!