简介

如果你曾经写过MFC应用程序,也许你忽略了控制台窗口。熟悉了控制台窗口的人会认为它是如此的便捷,我就是一个,认为printf或者cout是最优秀的调试函数,可以在不打开任务管理器的情况下在控制台中仅仅按下CTRL+C来结束不响应的程序。不幸的是,MFC应用程序默认情况下并不支持控制台。但是在你的应用程序加入一小段代码后,然后改变连接选项你就可以解决这个问题

l         对于Visual Studio .NET

l         对于 Visual Stduio 98 (Visual C++ 6.0)

l         它是如何工作的?

对于Visual Studio .NET

请根据下面的步骤做:

1.         复制以下代码保存为"mfcconsole.cpp",在Visual Studio .NET选择"Project"菜单的"Add Existing Item",把"mfcconsole.cpp"加进来

#include "stdafx.h"

#include <stdio.h>

#include <windows.h>

extern "C"

{

int PASCAL WinMain(HINSTANCE inst,HINSTANCE dumb,LPSTR param,int show);

};

int main(int ac,char *av[])

{

char buf[256];

int i;

HINSTANCE inst;

inst=(HINSTANCE)GetModuleHandle(NULL);

buf[0]=0;

for(i=1; i<ac; i++)

{

strcat(buf,av[i]);

strcat(buf," ");

}

return WinMain(inst,NULL,buf,SW_SHOWNORMAL);

}

2.         有时不知什么原因vs不编译某些已包含的文件,这个时候,选择"Solution Explorer"属性页,然后右键单击"mfcconsole.cpp"文件选择"Property",按下面的图解设置

3.         在 "Solution Explorer" 属性页选择项目名字,右键属性,设置如下

编译一下看看效果o(∩_∩)o…,如果你想删除控制台,你只需要将上图的SubSystem恢复至/SUBSYSTEM:WINDOWS

对于 Visual Stduio 98 (Visual C++ 6.0)

Here's how to add a printf-able console window to your MFC application.

1.       同.net的(1)

2. 右键单击mfcconsole.cpp文件,选择” Setting”,设置如下图:

3. 在项目菜单中点击设置,设置如下图,将"/subsystem:windows"改为"/subsystem:console"

它是如何工作的

连接选项"/subsystem:*****"控制程序是否有一个控制台窗口,

l         如果是"/subsystem:console":程序启动控制台,从main函数开始执行

l         如果是"/subsystem:windows":不启动控制台,从WinMain开始执行

三、

#include   <io.h>

#include   <fcntl.h>

#include   <io.h>

#include   <fcntl.h>

void   OpenConsole()

{

AllocConsole();

HANDLE   handle   =   GetStdHandle(STD_OUTPUT_HANDLE);

int   hCrt   =   _open_osfhandle((long)handle,_O_TEXT);

FILE   *   hf   =   _fdopen(   hCrt,   "w"   );

*stdout   =   *hf;

}

添加CXXApp为成员函数

InitInstance调用OpenConsole();

就可以调出Console用print输出了

转载于:https://www.cnblogs.com/kiss007/archive/2012/08/18/2645429.html

向MFC应用程序添加控制台窗口相关推荐

  1. 【OpenGL】二十四、OpenGL 纹理贴图 ( 读取文件内容 | 桌面程序添加控制台窗口 | ‘fopen‘: This function may be unsafe 错误处理 )

    文章目录 一.文件读取 二.报错处理 ( 'fopen': This function or variable may be unsafe. ) 三.桌面程序添加控制台窗口 四.相关资源 一.文件读取 ...

  2. MFC应用程序中添加控制台窗口

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  3. MFC应用程序中添加控制台窗口---debug输出窗口

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  4. 让Win32窗口程序拥有控制台窗口

    让Win32窗口程序拥有控制台窗口 首先,为什么我们有了普通窗口后还要控制台窗口呢?因为我们可以用它方便的输出调试信息,而且普通玩家看到了也会觉得很高端.如果他会输几条命令,可能他会以为自己就是黑客了 ...

  5. 给Win32 GUI程序增加控制台窗口的方法

    给Win32 GUI程序增加控制台窗口的方法 2008年10月11日 星期六 下午 04:43 在Win32的GUI程序中,没有控制台窗口,我们输出调试信息时有些不方便,以往我的做法是使用Messag ...

  6. 【vs开发】向图形界面程序添加控制台

    再设计gui程序时,可能需要用printf之类的函数来debug,因此添加控制台是很必要的方法. 具体方法: 1.任意做一个MFC的工程,基于单文档,多文档,或者对话框皆可. 2.右击工程文件名 选属 ...

  7. 让Dev-C++运行C++程序的控制台窗口等待查看运行结果

    2019独角兽企业重金招聘Python工程师标准>>> 在使用Dev-C++运行C++程序时,控制台窗口总是一晃而过,无法看到输出结果,着实让人苦恼,解决这个问题 可以用以下方法: ...

  8. C# 控制台程序 隐藏控制台窗口

    在某些项目中,需要采用控制台程序,但是又不需要通过dos窗口进行交互,同时打算隐藏掉难看的控制台窗口.实现的方法很多,有的是修改链接命令.我采用的方法略有些麻烦,首先是给窗口命名,之后找到该窗口指针, ...

  9. 为MFC应用程序添加全屏幕显示功能

    在CMainFrame类中添加下列成员变量和成员函数(使用ClassWizard),下面是这些变量和函数的功能说明: 成员变量: BOOL m_bFullScreen; //全屏幕显示标志 CRect ...

最新文章

  1. HarmonyOS UI 开发 vp ,fp , px 以及写具体数字的 理解
  2. 用python的turtle画圆-怎么用python画圆
  3. 在学习django的时候
  4. 1.15 总结-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  5. DAI、DHCP SNOOPING、ip source guard、IPSG
  6. python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250
  7. 逻辑漏洞之密码找回总结
  8. require.js学习记录
  9. 把本地库推送到github远程库
  10. HashTable、HashSet和Dictionary的区别
  11. Idea在debug时打上断点没有用 Skipped breakpoint at ... because it happened inside debugger evaluation
  12. 物联网python教程慕课_Web应用开发 19物联网,中国大学MOOC(慕课)答案公众号搜题...
  13. [渝粤教育] 西南科技大学 翻译 在线考试复习资料
  14. 微信小程序 - 开发者账号申请流程
  15. 清明节,我想起了我的外公
  16. kui 组件化库思路(来啦,老弟,持续更新哦,部署gitpages,添加issue)
  17. 怎么让笔记本变路由器,亲身试验可用,不用下第三方软件
  18. spring使用中applicationContext.xml文件头部声明
  19. 【C++面向对象程序设计——侯捷大师】心得摘要
  20. 零基础,没方向,如何快速有效学习编程语言?

热门文章

  1. 【2018.10.2】Note of CXM
  2. 修复Mysql主从不同步shell
  3. netty 发送 http请求
  4. 主线程等待一个 无阻塞函数 死循环子线程的安全退出
  5. Windows文件扩展名大全,不断添加中
  6. “新基建”横空出世,9本书助你把握7+2大领域风口
  7. html5怎么圆圈怎么打开,HTML5动感圆圈
  8. 一个HTTP请求,把网站打裂开了!
  9. 一篇文章带你搞定和Spring Boot有关的那些高频面试题
  10. Jeecg-boot 2.4.6+ 多租户改造方案(涉及菜单部门角色等基础模块)