在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視窗,還多加了一個控制台視窗,且裡面可有輸出.