向MFC应用程序添加控制台窗口
简介
如果你曾经写过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应用程序添加控制台窗口相关推荐
- 【OpenGL】二十四、OpenGL 纹理贴图 ( 读取文件内容 | 桌面程序添加控制台窗口 | ‘fopen‘: This function may be unsafe 错误处理 )
文章目录 一.文件读取 二.报错处理 ( 'fopen': This function or variable may be unsafe. ) 三.桌面程序添加控制台窗口 四.相关资源 一.文件读取 ...
- MFC应用程序中添加控制台窗口
在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...
- MFC应用程序中添加控制台窗口---debug输出窗口
在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...
- 让Win32窗口程序拥有控制台窗口
让Win32窗口程序拥有控制台窗口 首先,为什么我们有了普通窗口后还要控制台窗口呢?因为我们可以用它方便的输出调试信息,而且普通玩家看到了也会觉得很高端.如果他会输几条命令,可能他会以为自己就是黑客了 ...
- 给Win32 GUI程序增加控制台窗口的方法
给Win32 GUI程序增加控制台窗口的方法 2008年10月11日 星期六 下午 04:43 在Win32的GUI程序中,没有控制台窗口,我们输出调试信息时有些不方便,以往我的做法是使用Messag ...
- 【vs开发】向图形界面程序添加控制台
再设计gui程序时,可能需要用printf之类的函数来debug,因此添加控制台是很必要的方法. 具体方法: 1.任意做一个MFC的工程,基于单文档,多文档,或者对话框皆可. 2.右击工程文件名 选属 ...
- 让Dev-C++运行C++程序的控制台窗口等待查看运行结果
2019独角兽企业重金招聘Python工程师标准>>> 在使用Dev-C++运行C++程序时,控制台窗口总是一晃而过,无法看到输出结果,着实让人苦恼,解决这个问题 可以用以下方法: ...
- C# 控制台程序 隐藏控制台窗口
在某些项目中,需要采用控制台程序,但是又不需要通过dos窗口进行交互,同时打算隐藏掉难看的控制台窗口.实现的方法很多,有的是修改链接命令.我采用的方法略有些麻烦,首先是给窗口命名,之后找到该窗口指针, ...
- 为MFC应用程序添加全屏幕显示功能
在CMainFrame类中添加下列成员变量和成员函数(使用ClassWizard),下面是这些变量和函数的功能说明: 成员变量: BOOL m_bFullScreen; //全屏幕显示标志 CRect ...
最新文章
- HarmonyOS UI 开发 vp ,fp , px 以及写具体数字的 理解
- 用python的turtle画圆-怎么用python画圆
- 在学习django的时候
- 1.15 总结-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- DAI、DHCP SNOOPING、ip source guard、IPSG
- python爬取豆瓣电影top250_Python爬虫 - scrapy - 爬取豆瓣电影TOP250
- 逻辑漏洞之密码找回总结
- require.js学习记录
- 把本地库推送到github远程库
- HashTable、HashSet和Dictionary的区别
- Idea在debug时打上断点没有用 Skipped breakpoint at ... because it happened inside debugger evaluation
- 物联网python教程慕课_Web应用开发 19物联网,中国大学MOOC(慕课)答案公众号搜题...
- [渝粤教育] 西南科技大学 翻译 在线考试复习资料
- 微信小程序 - 开发者账号申请流程
- 清明节,我想起了我的外公
- kui 组件化库思路(来啦,老弟,持续更新哦,部署gitpages,添加issue)
- 怎么让笔记本变路由器,亲身试验可用,不用下第三方软件
- spring使用中applicationContext.xml文件头部声明
- 【C++面向对象程序设计——侯捷大师】心得摘要
- 零基础,没方向,如何快速有效学习编程语言?
热门文章
- 【2018.10.2】Note of CXM
- 修复Mysql主从不同步shell
- netty 发送 http请求
- 主线程等待一个 无阻塞函数 死循环子线程的安全退出
- Windows文件扩展名大全,不断添加中
- “新基建”横空出世,9本书助你把握7+2大领域风口
- html5怎么圆圈怎么打开,HTML5动感圆圈
- 一个HTTP请求,把网站打裂开了!
- 一篇文章带你搞定和Spring Boot有关的那些高频面试题
- Jeecg-boot 2.4.6+ 多租户改造方案(涉及菜单部门角色等基础模块)