`
dengbaoleng
  • 浏览: 1131599 次
文章分类
社区版块
存档分类
最新评论

win32和MFC下如何使用控制台窗口

 
阅读更多

在win32和MFC程序中,有时需要输出一些调试信息,本文介绍在win32和MFC程序中使用控制台输出信息的方法。我们可以在应用程序里使用AllocConsole()函数自己开一个控制台(就像DOS窗口一样),然后重定向输入输出,就可以用printf函数向控制台输出信息了,具体方法如下:

在CWinApp的重载函数InitInstance()中输入如下语句,开辟一个控制台并重定向输出

AllocConsole();// 开辟控制台
SetConsoleTitle(_T("Debug Output")); // 设置控制台窗口标题
freopen("CONOUT$","w",stdout); // 重定向输出

注意在VS2008下重定向可能需要如下这么写,没有试验过,大家可以试一下。

FILE* pf;
freopen_s(&pf,"CONOUT$","w",stdout);

记着,一定要在CWinApp的重载函数ExitInstance()中调用如下语句释放控制台。

FreeConsole();

下面是基于一个简单的对话框程序(工程名:TestConsole)的测试例子,在CTestConsoleApp类中重载InitInstance()并在该函数中输入:

AllocConsole();// 开辟控制台
SetConsoleTitle(_T("Debug Output")); // 设置控制台窗口标题
FILE* pf;
freopen_s(&pf,"CONOUT$","w",stdout); // 重定向输出

然后在CTestConsoleApp类中重载ExitInstance()并在该函数中输入:

FreeConsole();

通过资源编辑器为对话框添加一个测试按钮,并在按钮响应函数CTestConsoleDlg::OnBnClickedTest()函数中输入:

printf("%s/n", "TestConsole!");

程序启动后会看到一个对话框和一个控制台窗口,如下所示:

程序启动界面

点击"Test"按钮后将在控制台中输出"TestConsole!",如下所示

程序结果

分享到:
评论

相关推荐

    VS2010在Win32控制台使用定时器实例

    基本网上很多定时器都是用MFC写的,而用win32方面比较少,项目用到定时器这块,所以顺便上传一份. 是在VS2010 --> VC++ --> Win32控制台建的工程.里面涉及线程/定时器,简单易用,下载完可直接运行.

    MFC调用win32窗口显示调试信息

    MFC调用win32窗口显示调试信息,使用AllocConsole 函数(2010-11-16 15:33:25)转载标签: 调试win32mfc杂谈 分类: 编译器 AllocConsole Function 为主调进程分配一个新的控制台。 语法 C++ : BOOL WINAPI ...

    编写Win32控制台程序 注入带窗口的DLL.rar_dll注入_mfc.dll_带窗口的dll_注入_窗口 DLL

    编写Win32控制台程序 注入带窗口的DLL源码

    《白手起家Win32SDK应用程序》第四篇 注册一个窗口类

    《白手起家Win32SDK应用程序》第一篇 预备知识 白云小飞大大的文章 十分强大 详细介绍了利用WIN32 API 写窗口程序的基本知识 厌倦了写控制台程序了?想用C开发个带界面的程序吗?还在为MFC头疼吗? 看看这个吧!

    《白手起家Win32SDK应用程序》第二篇_创建Win32工程和主函数

    《白手起家Win32SDK应用程序》第一篇 预备知识 白云小飞大大的文章 十分强大 详细介绍了利用WIN32 API 写窗口程序的基本知识 厌倦了写控制台程序了?想用C开发个带界面的程序吗?还在为MFC头疼吗? 看看这个吧!

    MFC的程序框架剖析

    MFC程序具有两个窗口(框架窗口和视类窗口),在框架窗口产生之前会调用PreCreateWindow函数 14、CWnd::CreateEx函数 在MFC程序中,窗口的创建是由CreateEx函数实现的 15、CWnd::CreateWindowEx函数 主要作用是当...

    VC++ MFC笔记资料整理.rar

     1、使用MFC库制作自己的控制台程序  相比Win32控制台程序:  多了一个全局对象 CWinApp theApp  入口函数不同于以往的入口函数  2、使用MFC库制作自己的静态库程序  3、使用MFC库制作自己的...

    基于MCI的MFC音乐播放器源代码

    播放器在MFC的窗口嵌入了一个控制台窗口,实现了一个类似于MP3播放器中的液晶屏显示的效果。播放器支持歌词显示,支持ANSI和UTF8编码的歌词文件,并支持以卡拉OK样式显示。播放器界面支持自动适应窗口大小,并根据...

    《白手起家Win32SDK应用程序》第六篇 显示你创建的窗口

    《白手起家Win32SDK应用程序》第一篇 预备知识 白云小飞大大的文章 十分强大 详细介绍了利用WIN32 API 写窗口程序的基本知识 厌倦了写控制台程序了?想用C开发个带界面的程序吗?还在为MFC头疼吗? 看看这个吧!

    C++ 中 Windows 编程概述

    Windows Presentation Foundation (WPF),你可以使用 Win32 和新式 Windows 运行时 API。 作为一般规则,建议在需要以下功能时对桌面应用程序使用 C++: 还可以将 C++ 的强大功能和效率与 .NET 编程结合使用。

    基于C_S结构的Socket程序设计(含源码MFC和WIN32)

    但对于程序代码有一处需要说明,即窗口界面的C/S程序在实现客户端连接时使用了与题目要求稍有不同的流程: 本程序中当client使用TCP socket连接TCP Server成功后,client端要向TCP Server发送“GET UDP PORT”命令...

    《白手起家Win32SDK应用程序》第三篇 增加一个回调函数

    《白手起家Win32SDK应用程序》第一篇 预备知识 白云小飞大大的文章 十分强大 详细介绍了利用WIN32 API 写窗口程序的基本知识 厌倦了写控制台程序了?想用C开发个带界面的程序吗?还在为MFC头疼吗? 看看这个吧!

    《白手起家Win32SDK应用程序》第九篇

    《白手起家Win32SDK应用程序》第一篇 预备知识 白云小飞大大的文章 十分强大 详细介绍了利用WIN32 API 写窗口程序的基本知识 厌倦了写控制台程序了?想用C开发个带界面的程序吗?还在为MFC头疼吗? 看看这个吧!

    《白手起家Win32SDK应用程序》第一篇 预备知识

    《白手起家Win32SDK应用程序》第一篇 预备知识 白云小飞大大的文章 十分强大 详细介绍了利用WIN32 API 写窗口程序的基本知识 厌倦了写控制台程序了?想用C开发个带界面的程序吗?还在为MFC头疼吗? 看看这个吧!

    《白手起家Win32SDK应用程序》第五篇

    《白手起家Win32SDK应用程序》第一篇 预备知识 白云小飞大大的文章 十分强大 详细介绍了利用WIN32 API 写窗口程序的基本知识 厌倦了写控制台程序了?想用C开发个带界面的程序吗?还在为MFC头疼吗? 看看这个吧!

    《白手起家Win32SDK应用程序》第八篇

    《白手起家Win32SDK应用程序》第一篇 预备知识 白云小飞大大的文章 十分强大 详细介绍了利用WIN32 API 写窗口程序的基本知识 厌倦了写控制台程序了?想用C开发个带界面的程序吗?还在为MFC头疼吗? 看看这个吧!

    《白手起家Win32SDK应用程序》第七篇

    《白手起家Win32SDK应用程序》第一篇 预备知识 白云小飞大大的文章 十分强大 详细介绍了利用WIN32 API 写窗口程序的基本知识 厌倦了写控制台程序了?想用C开发个带界面的程序吗?还在为MFC头疼吗? 看看这个吧!

    创建基于控制台的调试窗口

    本文将展示如何有选择地将控制台窗口添加到Win32甚至是MFC程序中以进行调试。

    test11.zip

    该资源是一个完整工程,具体是控制台应用程序如何添加托盘,并且实现控制台窗口的显示或者隐藏,该工程为vs2105创建工程,使用win32API,没有任何MFC的代码

    VC++ Win32编程基础实例

    摘要:VC/C++源码,系统相关,Win32 Win32 Windows编程基础实例+源代码,内容涉及如下要点:  1 Windows编程基础  2 Windows文字的编码  3 窗口程序  4 窗口消息  5 菜单和加速键  6 绘图  7 对话框  8 基本...

Global site tag (gtag.js) - Google Analytics