1. // .h 文件
  2. #pragma once
  3. class CConsoleDump
  4. {
  5. public:
  6. explicit CConsoleDump(LPCTSTR lpszWindowTitle = NULL);
  7. virtual ~CConsoleDump(void);
  8. public:
  9. BOOL DUMP(LPCTSTR lpszFmt, ...);
  10. BOOL ShowWindow(BOOL bShowWindow);
  11. BOOL SetWindowText(LPCTSTR lpszWindowTitle = NULL);
  12. };
  13. // .cpp文件
  14. #include "StdAfx.h"
  15. #include "ConsoleDump.h"
  16. #define MAX_BUFFER_SIZE (10 * 1024)
  17. CConsoleDump::CConsoleDump(LPCTSTR lpszWindowTitle)
  18. {
  19. if(AllocConsole())
  20. {
  21. if(NULL != lpszWindowTitle)
  22. {
  23. SetConsoleTitle(lpszWindowTitle);
  24. }
  25. }
  26. }
  27. CConsoleDump::~CConsoleDump(void)
  28. {
  29. FreeConsole();
  30. }
  31. BOOL CConsoleDump::ShowWindow(BOOL bShowWindow)
  32. {
  33. return ::ShowWindow(GetConsoleWindow(), bShowWindow ? SW_SHOW : SW_HIDE);
  34. }
  35. BOOL SetWindowText(LPCTSTR lpszWindowTitle)
  36. {
  37. if(NULL != lpszWindowTitle)
  38. {
  39. return SetConsoleTitle(lpszWindowTitle);
  40. }
  41. return TRUE;
  42. }
  43. BOOL CConsoleDump::DUMP(LPCTSTR lpszFmt, ...)
  44. {
  45. TCHAR szText[MAX_BUFFER_SIZE] = {0};
  46. va_list arglist;
  47. va_start(arglist, lpszFmt);
  48. _vstprintf_s(szText, _countof(szText), lpszFmt, arglist);
  49. va_end(arglist);
  50. return WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), szText, _tcslen(szText), NULL, NULL);
  51. }
  52. // 测试使用
  53. CConsoleDump m_dump; // 定义为类的成员变量
  54. // 需要的地方利用CConsoleDump::DUMP函数输出log信息即可
  55. m_dump.DUMP(_T("Hello, World!\r\n"));

这只是个简单的封装了Console相关的几个函数,关于更多的Console相关的控制,可以参考MSDN文档中的

http://blog.csdn.net/visualeleven/article/details/7628564

一个简单的将GUI程序的log信息输出到关联的Console窗口中(AllocConsole SetConsoleTitle WriteConsole 最后用ShowWindow(GetConsoleWindow)进行显示)的更多相关文章

  1. Cocoa练习01:一个简单的Todo list程序

    写一个简单的todo list程序,界面如下图: 在TextField区域输入文字,点击Add按钮会将文字显示在下面的TableView列表中.TableView列表有2列,第一列是文字的输入时间:第 ...

  2. 一个简单的DDraw应用程序

        阅读排行榜 1. C/C++ 笔试.面试题目大汇总(72915) 2. [STL]list基础(21718) 3. COM笔记-CoCreateInstance(14842) 4. C/C++ ...

  3. Linux内核监控模块-1-驱动模块(LKM)开发(以一个简单的hello world程序为例)

    在上面一篇中介绍到,监控模块要做成一个驱动模块(或者说是可加载模块,LKM),动态的加载到Linux内核中.那么这篇就简单的介绍一下怎样做一个这样的驱动模块.   以简单的hello world程序为 ...

  4. 一个简单的P2P传输程序

    写了一个简单的P2P传输程序,在P2P的圈子中传输文件,不过为了简便,这个程序没有真正的传输文件,只是简单的判断一下文件的位置在哪里.这个程序可以处理当有一个peer闪退的情况,在这种情况下,剩下的p ...

  5. IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序

    前言:本篇博文是本人阅读国外的IOS Programming Tutorial的一篇入门文章的学习过程总结,难度不大,因为是入门.主要是入门UIImagePickerController这个控制器,那 ...

  6. iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序

    iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序 一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: // // YYcar ...

  7. 一个简单的MDI示范程序(Delphi)

    http://www.cnblogs.com/pchmonster/archive/2012/01/07/2316012.html 最为一个巩固之前有关窗体和对象的有关知识,下面就建立一个简单的MDI ...

  8. 一个简单的DDraw应用程序2

    //------------------------------------------------------------------------- // 文件名 : 6_1.cpp// 创建者 : ...

  9. C++ 容器的综合应用的一个简单实例——文本查询程序

    C++ 容器的综合应用的一个简单实例——文本查询程序 [0. 需求] 最近在粗略学习<C++ Primer 4th>的容器内容,关联容器的章节末尾有个很不错的实例.通过实现一个简单的文本查 ...

随机推荐

  1. 源码编译安装MySQL 5.7.9

    安装CentOS 6.3 配置yum:[root@hank-yoon ~]# cd /etc/yum.repos.d/ [root@hank-yoon yum.repos.d]# mkdir a [r ...

  2. elipse+pydev+python开发arcgis脚本程序

    环境配置参考:http://www.cnblogs.com/halfacre/archive/2012/07/22/2603848.html 添加arcpy类库.arctoolbox.arcgis-b ...

  3. YARN环境搭建 之 一:CentOS7.0系统配置

    一.我缘何选择CentOS7.0 14年7月7日17:39:42发布了CentOS 7.0.1406正式版,我曾使用过多款Linux,对于Hadoop2.X/YARN的环境配置缘何选择CentOS7. ...

  4. Yii2 composer更新后报错: Calling unknown method: yii\web\UrlManager::addRules()

    网上搜了好多答案,基本上都是让你在composer.json里面添加这样一段话: "extra": { "asset-installer-paths": { & ...

  5. MVC中的几个问题汇总

    1.The model backing the 'XXXXDBContext' context has changed since the database was created. Either m ...

  6. C++实现数字媒体三维图像变换

    C++实现数字媒体三维图像变换 必备环境 glut.h 头文件 glut32.lib 对象文件库 glut32.dll 动态连接库 程序说明 C++实现了用glut画物体对象的功能.并附带放大缩小,旋 ...

  7. Google Code Jam 2015 Round1A 题解

    快一年没有做题了, 今天跟了一下 GCJ Round 1A的题目, 感觉难度偏简单了, 很快搞定了第一题, 第二题二分稍微考了一下, 还剩下一个多小时, 没仔细想第三题, 以为 前两个题目差不多可以晋 ...

  8. UML 小结(3)- UML的结构及各个阶段的应用

    UML的结构: 其中各个图的作用如下:     用例图:用来描述用户的需求,从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能. 静态图包括类图跟对象图 类图 ...

  9. cocos2dx中创建标签CCLabel的三种方法及特点

    创建标签的三种方式:1.CCLabelTTF     (True Type Font,又叫本地字体)这是最简单,也是最常用的方式,不依赖于资源文件,也不依赖于某个系统,所指定的字体如果系统没有,则会提 ...

  10. iOS 计算 日期 距离 当前 系统的日期 相差 多少

    #pragma mark - 时间计算函数 - (NSTimeInterval)intervalSinceNow:(NSString *) theDate { NSDateFormatter * da ...