久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

MFC調(diào)用win32窗口顯示調(diào)試信息,,使用AllocConsole 函數(shù)

 imelee 2017-09-28
   一,、創(chuàng)建一個(gè)Console,AllocConsole

  1. AllocConsole Function 為主調(diào)進(jìn)程分配一個(gè)新的控制臺(tái),。  
  2. 語法 C++:  
  3. BOOLWINAPI AllocConsole(void);  
  4. 參數(shù):   無  
  5. 返回值:如果函數(shù)成功,,返回值是非零值;如果函數(shù)失敗,,返回值是零值。  
  6. 備注:  一個(gè)進(jìn)程僅能關(guān)聯(lián)一個(gè)控制臺(tái),,所以該函數(shù)在主調(diào)進(jìn)程已經(jīng)具有控制臺(tái)時(shí)將會(huì)失敗,。  

   二、顯示HelloWorld,,WriteConsole

  1. 有了console,,我們還需要獲取它的句柄HANDLE,然后才能在上面顯示,。  
  2. 方法是GetStdHandle,,它會(huì)獲取前面我們AllocConsole得到的cmd窗口的句柄;若未調(diào)用AllocConsole,,將獲取標(biāo)準(zhǔn)的輸入輸出窗口句柄,。  
  3.    
  4. HANDLE hdlWrite = GetStdHandle(STD_OUTPUT_HANDLE);//這里也可以使用STD_ERROR_HANDLE      
  5. TCHAR c[] = {"Hello world!"};  
  6. WriteConsole(hdlWrite, c, sizeof(c), NULL, NULL);  
  7.    
  8. 得到Console的句柄后直接使用 WriteConsole函數(shù)即可在屏幕上顯示啦。  
  9. 這個(gè)函數(shù)有5個(gè)參數(shù):第一個(gè)是console的句柄,第二個(gè)是寫出內(nèi)容的地址,,第三個(gè)參數(shù)是預(yù)計(jì)寫出長度,,第四個(gè)參數(shù)是實(shí)際寫出長度,可為NULL,,但不建議,,若使用NULL,boundchecker會(huì)在這提示錯(cuò)誤用法,,第五參數(shù)系統(tǒng)保留,,必須使用NULL。  

   三,、獲取用戶輸入,, ReadConsole

  1. 前面我們已經(jīng)創(chuàng)建了一個(gè)Console,輸入也需要使用這個(gè)console,,但若還用上面的OUTPUT句柄就不行了,,我們會(huì)發(fā)現(xiàn),程序在下面這句會(huì)直接跳過,。  
  2.   
  3. ReadConsole(hdlWrite, c, 2, NULL, NULL);  
  4. 這里,,我們還需要一個(gè)STD_INPUT_HANDLE;如下:  
  5.   
  6. TCHAR Buffer[100]; //開緩存  
  7. memset(Buffer, 0, 100);  
  8. DWORD dwCount = 0;//已輸入數(shù)  
  9.   
  10. HANDLE hdlRead = GetStdHandle(STD_INPUT_HANDLE);  
  11. ReadConsole(hdlRead, Buffer, 100, &dwCount,NULL);  
  12. 這個(gè)函數(shù)和WriteConsole類似,,但需要注意的是,,第四個(gè)參數(shù)必須指定,否則會(huì)無法讀取,。  

   四,、關(guān)閉Console

最后用完記得使用CloseHandle釋放句柄,如:

  1. CloseHandle(hdlRead);  
  2. CloseHandle(hdlWrite);  
  3. 若想關(guān)閉Console,,可以使用FreeConsole(); 需要注意的是,,若用戶直接點(diǎn)擊cmd窗口的關(guān)閉按鈕,整個(gè)程序(Application)將退出,!  


   五,、其他函數(shù)  

  1. SetConsoleTitle("Lonefox love China"); //修改Console的標(biāo)題  
  2.     
  3. HANDLE hConsole = CreateConsoleScreenBuffer(  
  4.     GENERIC_READ| GENERIC_WRITE, //權(quán)限  
  5.    FILE_SHARE_READ | FILE_SHARE_WRITE, //console的共享方式  
  6.    NULL,//安全性設(shè)置,NULL默認(rèn)即可  
  7.    CONSOLE_TEXTMODE_BUFFER,//唯一值  
  8.    NULL//保留  
  9.    );//創(chuàng)建console的屏幕內(nèi)容緩存,一個(gè)進(jìn)程可以有多個(gè)ScreenBuffer  
  10.       
  11. SetConsoleActiveScreenBuffer(hConsole); //顯示該buffer的內(nèi)容  
  12.       
  13. SetConsoleTextAttribute(hConsole,  
  14.    FOREGROUND_RED | BACKGROUND_GREEN);   
  15.       
  16. TCHAR c[] = {"Hello world!\n"};  
  17. WriteConsole(hConsole, c, sizeof(c), NULL, NULL); //在屏幕顯示  
  18.       
  19. CloseHandle(hConsole);  
  20.       
  21. FreeConsole();  


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多