Memaparkan Output Konsol dalam Program Windows C Asli
Dalam program C Windows menggunakan titik masuk WinMain, output konsol yang dijana oleh fungsi seperti std: :cout mungkin tidak kelihatan secara lalai. Ini kerana aplikasi antara muka pengguna grafik (GUI) biasanya tidak mempunyai tetingkap konsol yang dikaitkan dengannya.
Penyelesaian:
1. Lampirkan Konsol pada Aplikasi:
2. Ubah hala Output Konsol ke Fail:
Kod Contoh Menggunakan Pengalihan Konsol:
Coretan kod berikut menunjukkan cara melampirkan konsol pada program Windows dan mengubah hala strim kepadanya:
void RedirectIOToConsole() { int hConHandle; long lStdHandle; CONSOLE_SCREEN_BUFFER_INFO coninfo; FILE *fp; // Allocate a console for this app AllocConsole(); // Set the screen buffer size for scrolling GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo); coninfo.dwSize.Y = 500; SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize); // Redirect stdout lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen(hConHandle, "w"); *stdout = *fp; setvbuf(stdout, NULL, _IONBF, 0); // Redirect stdin lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen(hConHandle, "r"); *stdin = *fp; setvbuf(stdin, NULL, _IONBF, 0); // Redirect stderr lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen(hConHandle, "w"); *stderr = *fp; setvbuf(stderr, NULL, _IONBF, 0); }
Sertakan Pengepala:
#include "guicon.h"
Penggunaan:
#ifdef _DEBUG RedirectIOToConsole(); #endif
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Output Konsol dalam Program Windows C Asli?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!