Heim > Artikel > Backend-Entwicklung > Wie zeige ich die Konsolenausgabe in einem nativen C-Windows-Programm an?
Anzeigen der Konsolenausgabe in nativen C-Windows-Programmen
In C-Windows-Programmen, die den WinMain-Einstiegspunkt verwenden, wird die Konsolenausgabe durch Funktionen wie std generiert: :cout ist möglicherweise standardmäßig nicht sichtbar. Dies liegt daran, dass Anwendungen mit grafischer Benutzeroberfläche (GUI) normalerweise kein Konsolenfenster zugeordnet ist.
Lösungen:
1. Fügen Sie der Anwendung eine Konsole hinzu:
2. Konsolenausgabe in eine Datei umleiten:
Beispielcode mit Konsolenumleitung:
Der folgende Codeausschnitt zeigt, wie man eine Konsole an ein Windows-Programm anfügt und Streams dorthin umleitet:
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); }
Einschließen Kopfzeile:
#include "guicon.h"
Verwendung:
#ifdef _DEBUG RedirectIOToConsole(); #endif
Das obige ist der detaillierte Inhalt vonWie zeige ich die Konsolenausgabe in einem nativen C-Windows-Programm an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!