MFC程序显示控制台输出

有的时候,我们用c写的一些东西,可能需要MFC作为UI输入参数进行测试,但是程序里有大量的printf操作,这就需要MFC程序启动的时候同时打开

一个控制台,用于标准输出

查询网络,大致方法有以下两种

1,添加一个全局函数,内容如下,再程序启动的时候调用

  1. void InitConsoleWindow()

  2.  

    {

  3.  

    int nCrt = 0;

  4.  

    FILE* fp;

  5.  

    AllocConsole();

  6.  

    nCrt = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);

  7.  

    fp = _fdopen(nCrt, "w");

  8.  

    *stdout = *fp;

  9.  

    setvbuf(stdout, NULL, _IONBF, 0);

  10.  

    }

2,在程序启动的地方添加以下代码,MFC程序添加到InitInstance函数中

    1. FILE *stream;

    2.  

      AllocConsole();

    3.  

      SetConsoleTitle(_T("debug console"));

    4.  

      freopen_s(&stream,"CONOUT$", "w", stdout);

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

时间: 2024-11-07 05:40:21

MFC程序显示控制台输出的相关文章

VS中为非控制台程序提供控制台输出窗口

/************************************************************************/ /* 模块名:ConsoleAdapter 文件名:ConsoleAdapter.h 功 能:为非控制台程序提供控制台输出窗口 参 考: 1. http://www.codeproject.com/Articles/15836/Writing-to-and-read-from-the-console-From-a-GUI-ap ----------

VS2008下C++窗体程序显示控制台的方法

老蔡写了一个基于QT的窗体程序,而过去写的类的调试信息都是用cout显示的,苦于窗体程序无法显示cout信息很多信息都看不到,于是就想到让控制台和窗体同时显示.显示控制台方法如下 1.项目(或者叫“工程”,或者project) 2.连接器(linker) 3.系统(system) 4.将第一项选成控制台(Console).不过务必要记得选择控制台前是在什么选项上,等调试结束后选回去,不然程序编译出来,就带着那个黑框框的控制台了. 打完收工.希望调试C++看不到控制台的天使们看到这篇文章后不再继续

[Windows]_[中级]_[界面程序打开控制台输出-转发输出到控制台]

场景: 1. 开发Windows界面程序时,需要打印输出,断点在调试多线程程序有局限性,就是会干扰线程的优先顺序,看不到正确的结果,往往就是断点就没事, 没断点程序就不能正常运行了. 2. 使用动态库(静态库)时,出现问题时在Dll里写std::cout输出信息是必不可少的调试方法,特别对于多线程程序,谁先谁后暂停后的结果就会不一样了. 有时候没有动态库的代码时,也没法对动态库打断点. 3.  打开控制台窗口后只能看到WIndows程序的输出而无法看到Dll的输出? 4. 直接改配置属性->链接

OCC平台转到VS2015下MFC程序调用控制台失败解决办法

文章转自:https://blog.csdn.net/c437yuyang/article/details/54944668 一直用vs2010对occ进行编译,前几天转到vs2015平台下,好不容易花了两天的时间重新配置好了,但是发现控制台无法输入输出,一开始没在意,但是后面调试时很不方便,就决定将控制台调回来. 一开始以为是程序出错,引入了不同的输入输出流函数等,导致流无法定位,于是在头文件里面屏蔽了相关的 #include <iostream> ,#include <fstream

在MFC程序中增加控制台

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

mfc控制台输出

MFC程序调试时,在后台不方便输出调试信息,即可打开控制台 AllocConsole();                     // 打开控制台资源 freopen( "CONOUT$", "w+t", stdout );// 申请写 freopen( "CONIN$", "r+t", stdin );  // 申请读 printf("Hello World!\n");          // 写数据(

C++11,控制台输出的一段小程序。

#include <iostream> // std::cout, std::boolalpha, std::noboolalpha int main () { bool b = true; std::cout << std::boolalpha << b << '\n'; //把bool表示为alpha std::endl(std::cout); //把它当成一个函数来使用. std::cout << std::noboolalpha <

MFC六大机制 (1) MFC程序的初始化

本章将先介绍 MFC 的文档/视图结构,讲解实现该结构的数据结构,然后编写一个控制台应用程序来模拟 MFC 的初始化,理清 MFC 初始化的顺序,然后说明如何创建一个最基本的 MFC 应用程序. MFC 最重要的结构 文档/视图结构 MFC 提供了构造Windows应用程序的框架,它不仅为应用程序建立标准的结构,生成一系列启动文件,还提供标准的图形用户界面如菜单.工具栏.状态条等供开发人员在程序中补充完善,开发人员只需要完成针对待定应用的代码即可.其中最重要的框架就是其于文档/视图结构的文档应用

C#在控制台输出异常所在的行数

对于异常,我们经常用try-catch语句来处理,一种常见的方式是在catch语句块用MessageBox.Show("异常")这种弹窗的方式来报告异常.但是有些时候,有些异常发生时我们不希望弹窗干扰用户,只是想要打印出异常信息查找原因.分析调试而已. 这时候常用的方法有:打印log将异常信息保存到文本中.将异常信息输出到可显示文本的控件中.将异常打印到"输出"窗口中. 其中涉及的关键问题是:如何快速定位异常所在的位置.如果可以输出异常所在的行数其实就可以很好解决这