青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

wish  
日歷
<2007年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789
統計
  • 隨筆 - 4
  • 文章 - 1
  • 評論 - 34
  • 引用 - 0

導航

常用鏈接

留言簿(8)

隨筆檔案

文章檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 

很多時候,調試GUI程序是很不方便的,通常的做法是使用MessageBox,但是作為一個模態窗口,它經常產生不必要的消息,比如killfocus, setfocus或者paint,從而影響調試的執行過程。當然,使用vc的調試器也不錯,但是這樣也很容易造成窗口切換從而產生干擾消息。
因此,如果能像在控制臺程序里那樣使用cin/cout對象或printf族函數,會使得調試過程方便得多。而通常,windows是不會為GUI程序產生單獨的命令行窗口的。所以我們是看不到使用標準輸入輸出流輸出的東西的。既然系統不提供,那就自己動手“造”出一個來吧!


下面是一個簡單的控制臺窗口對象,它可以為你的程序創建一個命令行窗口,并將stdout,stdin和stderr重定向到這個命令行窗口。在程序中建立一個這樣的對象之后,就可以直接使用cin/cout/*printf來操縱這個新的命令行窗口了!

.h文件
#ifndef _CUSTOM_CONSOLE_
#define _CUSTOM_CONSOLE_

#include <io.h>
#include <fcntl.h>
#include <stdio.h>
#include <windows.h>

class Console
{
public:
 Console();
 Console(LPCTSTR lpszTitle, SHORT ConsoleHeight = 300, SHORT ConsoleWidth = 80);
 ~Console();

private:
 void Attach(SHORT ConsoleHeight, SHORT ConsoleWidth);
 static BOOL IsExistent;
};

#endif

.cpp文件

#include "***.h"

 BOOL Console::IsExistent = FALSE;

 Console::Console()
 {
  if (IsExistent)
   return;

  AllocConsole();
  Attach(300, 80);

  IsExistent = TRUE;
 }

 Console::Console(LPCTSTR lpszTitle, SHORT ConsoleHeight, SHORT ConsoleWidth)
 {
  if (IsExistent)
   return;

  AllocConsole();
  SetConsoleTitle(lpszTitle);
  Attach(ConsoleHeight, ConsoleWidth);

  IsExistent = TRUE;
 }

 void Console::Attach(SHORT ConsoleHeight, SHORT ConsoleWidth)
 {
  HANDLE  hStd;
  int     fd;
  FILE    *file;

// 重定向標準輸入流句柄到新的控制臺窗口

  hStd = GetStdHandle(STD_INPUT_HANDLE);
  fd = _open_osfhandle(reinterpret_cast<intptr_t>(hStd), _O_TEXT); // 文本模式
  file = _fdopen(fd, "r");
  setvbuf(file, NULL, _IONBF, 0); // 無緩沖
  *stdin = *file;

// 重定向標準輸出流句柄到新的控制臺窗口

  hStd = GetStdHandle(STD_OUTPUT_HANDLE);
  COORD size;
  size.X = ConsoleWidth;
  size.Y = ConsoleHeight;
  SetConsoleScreenBufferSize(hStd, size);
  fd = _open_osfhandle(reinterpret_cast<intptr_t>(hStd), _O_TEXT); //文本模式
  file = _fdopen(fd, "w");
  setvbuf(file, NULL, _IONBF, 0); // 無緩沖
  *stdout = *file;

// 重定向標準錯誤流句柄到新的控制臺窗口

  hStd = GetStdHandle(STD_ERROR_HANDLE);
  fd = _open_osfhandle(reinterpret_cast<intptr_t>(hStd), _O_TEXT); // 文本模式
  file = _fdopen(fd, "w");
  setvbuf(file, NULL, _IONBF, 0); // 無緩沖
  *stderr = *file;

 }

 Console::~Console()
 {
  if (IsExistent)
  {
   FreeConsole();
   IsExistent = FALSE;
  }
 }


可以在WinMain里建立這個對象,若在main里建立這個對象,則同樣會出現一個新的控制臺窗口。
#ifdef _DEBUG // 當然,在release版里同樣可以使用
Console notused;
#endif

posted on 2007-05-08 19:42 閱讀(1020) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


 
Copyright © 淼 Powered by: 博客園 模板提供:滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国内成人在线| 亚洲国产精品一区二区第一页 | 国产精品第2页| 亚洲香蕉成视频在线观看| 亚洲精选91| 国产精品狼人久久影院观看方式| 亚洲一区高清| 性色av一区二区三区在线观看| 国产欧美日韩亚洲精品| 久久最新视频| 欧美黄色精品| 亚洲欧美日韩另类精品一区二区三区| 这里只有视频精品| 国产免费亚洲高清| 久久男人av资源网站| 葵司免费一区二区三区四区五区| 亚洲人成网站999久久久综合| 亚洲日本aⅴ片在线观看香蕉| 欧美日韩亚洲高清| 久久久亚洲国产天美传媒修理工| 久久亚洲私人国产精品va媚药| 99精品视频一区二区三区| 亚洲图片在线观看| 精品二区视频| 一本色道久久综合亚洲精品按摩| 国产欧美精品一区| 欧美国产先锋| 国产欧美视频一区二区| 亚洲国产精品va在线看黑人动漫| 欧美日韩国产综合视频在线观看| 久久精品国语| 欧美日韩综合不卡| 欧美在线视频一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 中文亚洲欧美| 久久亚洲美女| 久久不射2019中文字幕| 欧美成人一区二区在线| 欧美亚洲一级| 欧美国产日本| 久久综合久久综合这里只有精品 | 夜夜爽www精品| 国内偷自视频区视频综合| 亚洲精一区二区三区| 韩国一区二区在线观看| 亚洲无玛一区| 日韩亚洲国产精品| 久久久久久亚洲综合影院红桃| 亚洲午夜小视频| 欧美v日韩v国产v| 久久一区二区三区国产精品| 国产精品乱子乱xxxx| 亚洲乱码国产乱码精品精天堂| 亚洲第一偷拍| 久久疯狂做爰流白浆xx| 欧美一区亚洲二区| 国产精品剧情在线亚洲| 99精品视频免费观看视频| 亚洲精品乱码久久久久久按摩观 | 亚洲福利视频一区| 一区在线播放| 久久国产福利国产秒拍| 久久成人免费日本黄色| 国产伦理一区| 午夜一区在线| 久久久xxx| 国产综合色精品一区二区三区| 亚洲一区亚洲| 欧美影院成年免费版| 国产一区二区精品久久99| 午夜视频在线观看一区| 久久久久久亚洲精品中文字幕 | 黄网站色欧美视频| 久久精品主播| 欧美成人按摩| 亚洲精品久久久久久久久久久久| 欧美激情1区2区| 99热精品在线| 午夜精品视频在线观看一区二区 | 久久aⅴ国产欧美74aaa| 久久全国免费视频| 亚洲人被黑人高潮完整版| 欧美日韩p片| 亚洲在线视频网站| 久久国产精品网站| 亚洲电影免费在线| 欧美激情一区二区三区蜜桃视频| 99精品欧美一区| 久久国产免费看| 亚洲电影欧美电影有声小说| 欧美国产日韩一区二区在线观看 | 亚洲一区三区视频在线观看| 久久国产精品99国产精| 雨宫琴音一区二区在线| 欧美精品一线| 亚洲欧美中文另类| 美女视频黄 久久| 亚洲亚洲精品在线观看 | 欧美色精品天天在线观看视频| 亚洲欧美日韩国产另类专区| 久久色中文字幕| 一本色道久久综合亚洲精品高清 | 美女久久网站| 中文在线不卡视频| 欧美韩日视频| 欧美在线视频二区| 亚洲欧洲综合另类在线| 国产欧美日韩91| 欧美精品乱码久久久久久按摩| 亚洲欧美日韩区| 亚洲精品视频啊美女在线直播| 欧美一区网站| 在线亚洲成人| 1024亚洲| 国产丝袜美腿一区二区三区| 欧美裸体一区二区三区| 久久久91精品国产一区二区三区| 亚洲精品影院在线观看| 美女性感视频久久久| 欧美一区在线看| 一区二区三区视频在线| 亚洲黄色有码视频| 国产午夜精品在线观看| 国产精品国产三级国产aⅴ9色 | 一区二区电影免费在线观看| 免费在线观看日韩欧美| 欧美一区在线视频| 亚洲欧美99| 亚洲午夜一区二区三区| 亚洲看片一区| 亚洲国产视频直播| 亚洲成色最大综合在线| 激情久久五月天| 国产亚洲一区在线播放| 国产精品亚洲第一区在线暖暖韩国| 欧美区二区三区| 欧美xxx成人| 猫咪成人在线观看| 久久亚洲私人国产精品va| 久久免费视频网| 久久夜色精品亚洲噜噜国产mv| 欧美一级网站| 欧美一区二区三区免费在线看 | 亚洲小说春色综合另类电影| 一区二区久久| 一本一本久久a久久精品综合麻豆| 亚洲免费激情| 日韩视频欧美视频| 99视频精品全部免费在线| 99国产精品自拍| 99热精品在线| 亚洲欧美国内爽妇网| 亚洲欧美制服另类日韩| 欧美自拍偷拍午夜视频| 久久狠狠亚洲综合| 久久综合九色99| 欧美激情视频网站| 国产精品h在线观看| 国产精品呻吟| 伊人久久综合97精品| 91久久亚洲| 亚洲图片欧美一区| 欧美资源在线观看| 你懂的国产精品| 亚洲精品国久久99热| 亚洲视频电影在线| 欧美中文在线免费| 欧美成人黑人xx视频免费观看| 欧美日韩国产在线播放| 国产精品一区二区久久久久| 狠狠干综合网| 99国产精品国产精品毛片| 亚洲在线一区二区三区| 久久久精品午夜少妇| 亚洲国产成人精品女人久久久| 在线亚洲精品| 久久午夜精品| 国产精品毛片在线| 亚洲国产精品美女| 亚洲影院污污.| 久久综合网hezyo| 亚洲乱码视频| 久久精品99无色码中文字幕| 欧美麻豆久久久久久中文| 国产一区二区日韩精品| 亚洲作爱视频| 免费观看成人网| 在线一区二区日韩| 女人香蕉久久**毛片精品| 国产欧美日韩综合一区在线播放 | 狠狠干成人综合网| 亚洲视频在线观看视频| 蜜桃av一区二区三区| 亚洲视频免费看| 欧美成人精品激情在线观看| 国产亚洲欧洲997久久综合| 一本一道久久综合狠狠老精东影业| 久久久天天操| 亚洲一区国产| 欧美日韩一区二区三区四区五区|