MFC如何在有界面的应用程序中开启控制台窗口

在有界面的应用程序中开启控制台窗口有时候非常有用,尤其是在调试多线程应用程序中,
由于通过断点的方式调试程序时会导致线程挂起从而导致各种难于预料的结果。这时候就可
以通过开启控制台窗口往窗口输出信息来查看线程的运行情况,这比通过日志文件输出的方式
更方便和实时。下面介绍两种开启控制台窗口的方法:
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"字符串

原文地址:https://www.cnblogs.com/lidabo/p/9493432.html

时间: 2024-10-24 13:53:17

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

在控制台程序中隐藏控制台窗口

大家都知道,当编写一个win32 console application时,当运行此类程序的时候默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只想在程序中运行一段功能代码,不希望显示这个console窗口,让代码执行完毕之后程序自动退出. 下面就介绍一下,如何隐藏win32 console application的console窗口 因为此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译器的链接开关选项(也就是linker选项). 首先我们来看一下linke

在MFC程序中增加控制台

在MFC程序中增加控制台 MFC程序中,如果想要输出调试信息,我们一般都是TRACE或者使用LOG文件,都不是很方便,第一个需要我们在调试状态下,第二个也要配置麻烦而且不直观.而使用Console来显示调试信息应该是更好的选择.下面介绍几种在MFC程序中,使用控制台来输出调试信息. 1. 我们可以自己创建一个命令行窗口,在主程序的初始化的时候调用AllocConsole()函数.相应的退出的时候调用FreeConsole() 1 BOOL CMFCTestApp::InitInstance()2

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

这儿需要使用两个系统函数: BOOL WINAPI FreeConsole(void); //// 关闭控制台窗口,参考:http://msdn.microsoft.com/en-us/library/ms683150%28VS.85%29.aspx BOOL WINAPI AllocConsole(void); //// 打开控制台窗口,参考:http://msdn.microsoft.com/en-us/library/ms681944%28VS.85%29.aspx对应DLL:Kernel

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

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

第27课 应用程序中的主窗口

1. 主窗口的概念 (1)主窗口是与用户进行长时间交互的顶层窗口 (2)程序的绝大多数功能直接由主窗口提供 (3)主窗口通常是应用程序启动后显示的第一个窗口 (4)整个程序由一个主窗口和多个对话框组成 2. Qt中的主窗口 (1)Qt开发平台中直接支持主窗口的概念 (2)QMainWindow是Qt中主窗口的基类 (3)QMainWindow继承于QWidget是一种容器类型的组件 3. QMainWindow中封装的秘密 (1)菜单栏(2)工具栏(3)中心组件(4)停靠组件(5)状态栏 4.

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

设置方法 项目 -> 属性 -> 生成事件 ->后期生成事件 -> 命令行 中添加 editbin /SUBSYSTEM:CONSOLE $(OutDir)\$(ProjectName).exe 运行效果 原文地址:https://www.cnblogs.com/xyb617/p/10762764.html

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

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

qt进程编程的使用:一个程序中调用另一个程序

在QT编程中有时候需要调用一个已经写好的程序来处理正在编写的程序中的数据,这个时候就 需要用到进程来调用那个已经写好的程序. 事先编写好一个layout程序: #include<QApplication> #include<QPushButton> #include<QGridLayout> #include<QLabel> #include<QLineEdit> #include<QMainWindow> int main(int

在ASP.NET 5应用程序中的跨域请求功能详解

在ASP.NET 5应用程序中的跨域请求功能详解 浏览器安全阻止了一个网页中向另外一个域提交请求,这个限制叫做同域策咯(same-origin policy),这组织了一个恶意网站从另外一个网站读取敏感数据,但是一些特殊情况下,你需要允许另外一个站点跨域请求你的网站. 跨域资源共享(CORS:Cross Origin Resources Sharing)是一个W3C标准,它允许服务器放宽对同域策咯的限制,使用CORS,服务器可以明确的允许一些跨域的请求,并且拒绝其它的请求.CORS要比JSONP