在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窗口,还多加了一个控制台窗口,且里面可有输出.