在win32的視窗程序中加入控制台console視窗

來源:互聯網
上載者:User
 

在win32的視窗程序中加入控制台console視窗:

(1)標頭檔:

#include <io.h>

#include <fcntl.h>

#include <iostream>

using namespace std;

(2)redirectIOToConsole()函數:

//使用控制台的輸出

void redirectIOToConsole( void )

{

    AllocConsole();

 

    // Get the handle for STDOUT's file system.

    HANDLE stdOutputHandle = GetStdHandle( STD_OUTPUT_HANDLE );

 

    // Redirect STDOUT to the new console by associating STDOUT's file

    // descriptor with an existing operating-system file handle.

    int hConsoleHandle = _open_osfhandle( (intptr_t)stdOutputHandle, _O_TEXT );

    FILE *pFile = _fdopen( hConsoleHandle, "w" );

    *stdout = *pFile;

    setvbuf( stdout, NULL, _IONBF, 0 );

 

    // This call ensures that iostream and C run-time library operations occur 

    // in the order that they appear in source code.

    ios::sync_with_stdio();

}

(3)在WIN32的WinMain()函數中調用redirectIOToConsole():

int WINAPI WinMain(,,,)

{

    redirectIOToConsole();//使用控制台的輸出

    ……

}

 

(4)在要輸出時直接調用: cout<< "hello,world!"<< endl;

則可以看到除了有原來的WIN32視窗,還多加了一個控制台視窗,且裡面可有輸出.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.