在有界面的应用程序中开启控制台窗口有时候非常有用,尤其是在调试多线程应用程序中,
由于通过断点的方式调试程序时会导致线程挂起从而导致各种难于预料的结果。这时候就可
以通过开启控制台窗口往窗口输出信息来查看线程的运行情况,这比通过日志文件输出的方式
更方便和实时。下面介绍两种开启控制台窗口的方法:
1.通过AllocConsole()函数打开控制台窗口
  AllocConsole();//打开控制台窗口
  HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出句柄
  char msg[] = "点击了确定按钮!\n";
  WriteConsole(hOutput,msg,strlen(msg),NULL,NULL);//向控制台窗口写入信息
以下是示例程序运行的的效果图:

每当点击按钮时就会在控制台输出"点击了确定按钮!\n"

2.通过配置相关属性
  通过在 属性->配置属性->生成事件->后期生成事件->命令行 中添加 
  editbin /subsystem:console $(OutDir)\$(TargetName).exe
  使用cout或者printf向控制台输出 也可以通过获取标准输出句柄然后调用WriteConsole
  方式输出
本程序采用cout打印"Hello World"字符串

MFC如何在有界面的应用程序中开启控制台窗口的更多相关文章

  1. 【MFC】如何在MFC创建的程序中更改主窗口的属性 与 父窗口 WS_CLIPCHILDREN 样式 对子窗口刷新的影响 与 窗体区域绘制问题WS_CLIPCHILDREN与WS_CLIPSIBLINGS

    如何在MFC创建的程序中更改主窗口的属性 摘自:http://blog.sina.com.cn/s/blog_4bebc4830100aq1m.html 在MFC创建的单文档界面中: (基于对话框的, ...

  2. MFC Wizard创建的空应用程序中各个文件内容的解析

    创建的MFC应用程序名为:wd,那么: 一.wd.h解析 // wd.h : main header file for the WD application // #if !defined(AFX_W ...

  3. 在android程序中加入widget(窗口小部件)并与之交互的关键代码

    摘要: widget(窗口小部件)可以增强应用程序的交互性, 是很多应用中都会用到的功能,本文不求大而全,但是会给出程序与widget交互的关键代码 正文: 其实widget是嵌入(embedded) ...

  4. C# 在winform或者wpf中显示控制台窗口

    这儿需要使用两个系统函数: BOOL WINAPI FreeConsole(void); //// 关闭控制台窗口,参考:http://msdn.microsoft.com/en-us/library ...

  5. 【MFC】如何在mfc窗口程序中调用控制台

    1.工程名为Zero,在CZeroDlg.cpp中加入头文件 #include “conio.h” : 2.在CZeroDlg::OnInitDialog() {…}函数中加入AllocConsole ...

  6. 在C++程序中开启和禁用Windows设备的无线网卡的方法

    原文链接地址:https://www.jb51.net/article/81340.htm 1.列出当前网卡:SetupDiEnumDeviceInfo 2.找出当前无线网卡的名字(用natvie w ...

  7. VisualStudio程序运行后控制台窗口一闪就没了

    这个虽然是千查万查出来的,但也不是原创的.希望对大家有所帮助. 方案一:网上最常见的解决方案是,在程序结尾的 return 0; 之前加 system("pause") 或 get ...

  8. vs 开发 win32 程序,调出控制台窗口,方便调试

    设置方法 项目 -> 属性 -> 生成事件 ->后期生成事件 -> 命令行 中添加 editbin /SUBSYSTEM:CONSOLE $(OutDir)\$(Project ...

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

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

随机推荐

  1. HDU - 5033: Building(单调栈 ,求一排高楼中人看楼的最大仰角)

    pro:现在在X轴上有N个摩天大楼,以及Q个人,人和大楼的坐标各不相同,保证每个人左边和右边都有楼,问每个人能看到天空的角度大小. sol:不难想到就是维护凸包,此题就是让你模拟斜率优化,此处没有斜率 ...

  2. python三大框架之一flask中cookie和session的相关操作

    状态保持 Cookie cookie 是指某些网站为了 辨别  用户身份,进行会话跟踪而储存在用户本地的数据(通常会经过加密),复数形式是 coolies. cookie是由服务器端生成,发送给客户端 ...

  3. lvm创建 及 扩空 等相关

    1.先对磁盘进行LVM 设置 2.pvcreate  物理卷的创建 pvcreate /dev/### 3.vgcreate 物理卷组的创建 vgcreate  vg_name  /dev/###  ...

  4. .Net Core开发环境迁移到Linux

    .Net开发环境迁移到Linux上去 .Net Core发布之前,多年来,.Net程序员的开发环境都在Windows上. 三街第一帅的我,虽然上班的8小时一直在windows上撸C#,但是下班时间一般 ...

  5. 2017.8.23 shell判断文件,目录是否存在或者具有权限

    #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/access.log" #这里的-x 参数 ...

  6. Linux 进程管理 笔记

    https://www.ibm.com/developerworks/cn/linux/l-linux-process-management/index.htmlLinux 进程管理剖析 进程可以是短 ...

  7. Linux交叉工具链安装

    这篇博文http://blog.csdn.net/u010957054/article/details/58056863 提到了一个好的百度网盘,里面有各个版本的交叉工具链. http://www.3 ...

  8. Go Example--switch

    package main import ( "fmt" "time" ) func main() { i := 2 fmt.Print("write ...

  9. 用Python开发Zeroc Ice应用

    Zeroc Ice简介   Zeroc ICE(Internet Communications Engine ,互联网通信引擎)是目前功能比较强大和完善的RPC框架,支持跨平台.跨语言调用.它非常灵活 ...

  10. jenkins 使用smtp2http 邮件服务,扩展灵活的构建通知功能

    smtp2http 是一个很方便的可以将smtp 转换为http 服务的工具,同时也支持扩展的开发,我们可以使用此工具 扩展灵活的ci.cd 生命周期管理,而不是简单的邮件处理 备注: 使用docke ...