네이티브 C Windows 프로그램에서 콘솔 출력 표시
WinMain 진입점을 사용하는 C Windows 프로그램에서 std와 같은 함수에 의해 생성된 콘솔 출력은 다음과 같습니다. :cout은 기본적으로 표시되지 않을 수 있습니다. 이는 일반적으로 그래픽 사용자 인터페이스(GUI) 애플리케이션에 연결된 콘솔 창이 없기 때문입니다.
해결책:
1. 애플리케이션에 콘솔 연결:
2. 콘솔 출력을 파일로 리디렉션:
콘솔 리디렉션을 사용하는 예제 코드:
다음 코드 조각은 콘솔을 Windows 프로그램에 연결하고 스트림을 리디렉션하는 방법을 보여줍니다.
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); }
포함 헤더:
#include "guicon.h"
사용:
#ifdef _DEBUG RedirectIOToConsole(); #endif
위 내용은 기본 C Windows 프로그램에서 콘솔 출력을 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!