为窗口程序添加控制台
2013-09-11 17:31
330 查看
第一步:添加头文件 RedirectIOToConsole.h
内容如下:
第二步:添加程序文件 RedirectIOToConsole.cpp
内容如下:
第四步:在窗口程序初始化过程中调用RedirectIOToConsole()函数:
内容如下:
#include "stdafx.h" #include <stdio.h> #include <fcntl.h> #include <io.h> #include <iostream> #include <fstream> #include <iostream> #ifndef _USE_OLD_IOSTREAMS using namespace std; #endif // maximum mumber of lines the output console should have static const WORD MAX_CONSOLE_LINES = 500; void RedirectIOToConsole();
第二步:添加程序文件 RedirectIOToConsole.cpp
内容如下:
#include "stdafx.h" #include "RedirectIOToConsole.h" void RedirectIOToConsole() { int hConHandle; long lStdHandle; CONSOLE_SCREEN_BUFFER_INFO coninfo; FILE *fp; // allocate a console for this app AllocConsole(); // set the screen buffer to be big enough to let us scroll text GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo); coninfo.dwSize.Y = MAX_CONSOLE_LINES; SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize); // redirect unbuffered STDOUT to the console lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen( hConHandle, "w" ); *stdout = *fp; setvbuf( stdout, NULL, _IONBF, 0 ); // redirect unbuffered STDIN to the console lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen( hConHandle, "r" ); *stdin = *fp; setvbuf( stdin, NULL, _IONBF, 0 ); // redirect unbuffered STDERR to the console lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen( hConHandle, "w" ); *stderr = *fp; setvbuf( stderr, NULL, _IONBF, 0 ); // make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog // point to console as well ios::sync_with_stdio(); }第三步:在窗口程序中包含刚才创建的头文件:
////////////////////////////////////////////////// #include "RedirectIOToConsole.h" //////////////////////////////////////////////////
第四步:在窗口程序初始化过程中调用RedirectIOToConsole()函数:
//////////////////////////////////////////// RedirectIOToConsole(); ////////////////////////////////////////////
相关文章推荐
- 为MFC程序添加控制台窗口
- 在Win32控制台程序中添加Windows窗口
- 命令行启动java程序不显示控制台窗口
- 添加/删除程序空白窗口及控制面板窗口显示异常问题的解决方法
- Visual Studio控制台程序输出窗口一闪而过的解决方法
- C#WinForm程序显示控制台窗口Console
- 图解使用Win8Api进行Metro风格的程序开发五----在系统的设置窗口添加按钮
- 在控制台程序中,添加config文件
- 为窗体程序添加控制台及重新绑定输入输出流
- WIN32汇编语言在窗口添加按钮,点击按钮实现跳转到一个程序或者一个URL。。。
- 在控制台程序中隐藏控制台窗口!
- C# 控制台程序(命令行程序)设置字体颜色,窗口宽高,光标行数
- VC6.0给控制台程序exe文件添加图标
- 【转】在控制台程序中隐藏控制台窗口!
- 控制台程序窗口隐藏
- 在控制台程序中隐藏控制台窗口
- VC创建无窗口的控制台程序
- (转自 ncode)VC++ 如何隐藏控制台程序窗口
- 将Window窗口程序改成Windows 控制台程序
- VisualStudio2010在C++控制台程序里添加图标