`
chinamming
  • 浏览: 140653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

MFC 利用控制台输出调试信息

 
阅读更多

方法一:

WINDOWS为你提供了一系列的API来完成这个功能,例如:ReadConsole,WriteConsole等,具体参见MSDN。

1。首先调用AllocConsole函数来为你进程创建一个Console,该API是将当前进程Attache到一个新创建的Console上。你还可以通过调用SetConsoleTitle(tstrName);来设置Console的Title.

2。使用WriteConsoleOutput来将信息输出到Console上;在输出之前,先要得到Console的HANDLE,这通过GetStdHandle(STD_OUTPUT_HANDLE)来得到,然后将信息组织成Console的格式,然后输出。

3。关闭CONSOLE。当不需要这个CONSOLE的时候,调用FreeConsole来将当前进程从Console中Detach中。

4。通过创建一个进程来为监视你的CONSOLE输入和输出;你可以创建一个线程然后来,在线程中取得标准输入和输出CONSOLE的HANDLE,然后循环监视其事件,再对不同的事件进行处理。

第二种方案:
在 Project | Setting...中,选项 Post-builder step 里新建command, 输入:
editbin /SUBSYSTEM:CONSOLE $(OUTDIR)\filename.exe
(其中 filename 为可执行文件名)
则可以使用 printf 或者 std::cout 在控制台中输出了。例如你的可执行文件名为 HelloWorld.exe,则你新建的 command 就为

editbin   /SUBSYSTEM:CONSOLE   $(OUTDIR)\HelloWorld.exe

第三种方案,就用TRACE,然后编译debug的工程,直接运行你的可执行文件,可以用Dbgview来获得输出。

第四:http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=186174

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/RoseinTrap/archive/2007/10/25/1842880.aspx

方法一:

WINDOWS为你提供了一系列的API来完成这个功能,例如:ReadConsole,WriteConsole等,具体参见MSDN。

1。首先调用AllocConsole函数来为你进程创建一个Console,该API是将当前进程Attache到一个新创建的Console上。你还可以通过调用SetConsoleTitle(tstrName);来设置Console的Title.

2。使用WriteConsoleOutput来将信息输出到Console上;在输出之前,先要得到Console的HANDLE,这通过GetStdHandle(STD_OUTPUT_HANDLE)来得到,然后将信息组织成Console的格式,然后输出。

3。关闭CONSOLE。当不需要这个CONSOLE的时候,调用FreeConsole来将当前进程从Console中Detach中。

4。通过创建一个进程来为监视你的CONSOLE输入和输出;你可以创建一个线程然后来,在线程中取得标准输入和输出CONSOLE的HANDLE,然后循环监视其事件,再对不同的事件进行处理。

第二种方案:
在 Project | Setting...中,选项 Post-builder step 里新建command, 输入:
editbin /SUBSYSTEM:CONSOLE $(OUTDIR)\filename.exe
(其中 filename 为可执行文件名)
则可以使用 printf 或者 std::cout 在控制台中输出了。例如你的可执行文件名为 HelloWorld.exe,则你新建的 command 就为

editbin   /SUBSYSTEM:CONSOLE   $(OUTDIR)\HelloWorld.exe

第三种方案,就用TRACE,然后编译debug的工程,直接运行你的可执行文件,可以用Dbgview来获得输出。

第四:http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=186174

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/RoseinTrap/archive/2007/10/25/1842880.aspx

分享到:
评论

相关推荐

    基于对话框例子程序,MFC调用控制台,利用cout、printf输出信息(已更新)

    基于对话框例子程序,MFC调用控制台,利用cout、printf输出信息 包含利用cout、printf输出unicode信息到控制台

    MFC调用WIN32控制台程序调用printf功能

    简介:这是VC2010 MFC(vs2005、VC6.0也可以)中实现printf调试功能,即MFC程序利用控制台输出调试信息的详细页面,介绍了和服务器,有关的知识、技巧、经验,和一些服务器源码等。

    Visual C++开发实战1200例 第二章

    实例026利用Watch调试窗口查看对象信息 实例027利用CallStack窗口查看函数调用信息 实例028利用Memory窗口查看内存信息 实例029利用Variables窗口查看变量信息 实例030利用Registers窗口查看CPU寄存器信息 实例031...

    MFC的程序框架剖析

    应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。如果句柄不用在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一...

    visual c++ 开发宝典 源码

    第2章 利用集成开发环境生成程序 2.1 生成项目(project) 2.2 添加和编辑源文件 2.3 建立程序 2.4 运行程序 2.5 调试程序 2,6VisualC+4.生成的项目文件 2.7 编写控制台应用程序 小结 第3章 Windows程序运行原理 3.1 ...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

     ·分享c++程序的错误查找技术,并介绍通用的调试原则讨论每一个windows应用程序的结构和基本元素  ·举例说明如何使用mfc开发本地windows应用程序  ·指导读者用c++和c++/cli设计和创建大量的windows应用程序 ...

    ObjectARX 人机交互技术原型程序介绍

    由于这些函数同以往的控制台应用程序中调用的 C 语言库中的控制台输入输出函数具有初级的类似,于是作者确定自己的研究方向就是将这些用户输入函数的实现技术搞清楚,同时最好编制出原型程序,于是在 Microsoft ...

    C#微软培训资料

    <<page 1>> page begin==================== 目 目目 目 录 录录 录 第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 ... 比尔....这一天 微软公司正式推出了其下一代...

    基于SIP开发软件电话的一些资源(转自YOUTOO)

    我们先进行一个简单的纯SIP信令(不带语音连接建立)的UAC的SIP终端的程序开发的试验(即一个只能作为主叫不能作为被叫的的SIP软电话模型),我们创建一个MFC应用程序,对话框模式,照上面的说明,...

Global site tag (gtag.js) - Google Analytics