在Windows GUI程序可能会有这样的需求: 看到程序运行时print输出的一些信息
1
AllocConsole();
//
打开控制台窗口以显示调试信息
2 SetConsoleTitleA( " Debug Win " ); // 设置标题
3 HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); // 获取控制台输出句柄
4 INT hCrt = _open_osfhandle((INT)hCon, _O_TEXT); // 转化为C文件描述符
5 FILE * hf = _fdopen( hCrt, " w " ); // 转化为C文件流
6 setvbuf( hf, NULL, _IONBF, 0 ); // 无缓冲
7 * stdout = * hf; // 重定向标准输出
8 ...
9
10 FreeConsole(); // 释放console
2 SetConsoleTitleA( " Debug Win " ); // 设置标题
3 HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); // 获取控制台输出句柄
4 INT hCrt = _open_osfhandle((INT)hCon, _O_TEXT); // 转化为C文件描述符
5 FILE * hf = _fdopen( hCrt, " w " ); // 转化为C文件流
6 setvbuf( hf, NULL, _IONBF, 0 ); // 无缓冲
7 * stdout = * hf; // 重定向标准输出
8 ...
9
10 FreeConsole(); // 释放console