다음을 통해 공유


하위 수준 콘솔 출력 함수

Important

이 문서에서는 더 이상 에코시스템 로드맵의 일부가 되지 않는 콘솔 플랫폼 기능에 대해 설명합니다. 이 콘텐츠를 신제품에서 사용하지 않는 것이 좋지만, 무기한 앞으로도 기존 사용을 계속 지원할 것입니다. 선호하는 최신 솔루션은 플랫폼 간 시나리오에서 최대 호환성을 위해 가상 터미널 시퀀스에 중점을 둡니다. 이 디자인 결정에 대한 자세한 내용은 클래식 콘솔과 가상 터미널 문서에서 확인할 수 있습니다.

하위 수준 콘솔 출력 함수는 화면 버퍼의 문자 셀에 직접 액세스할 수 있도록 합니다. 하나의 함수 집합은 콘솔 화면 버퍼의 모든 위치에서 시작되는 연속 셀에서 읽거나 씁니다. 또 다른 함수 집합은 셀의 사각형 블록에서 읽거나 씁니다.

다음 함수는 지정된 셀부터 시작하여 화면 버퍼에서 지정된 수의 연속 문자 셀에서 읽거나 씁니다.

함수 설명
ReadConsoleOutputCharacter 화면 버퍼에서 유니코드 또는 ANSI 문자 문자열을 복사합니다.
WriteConsoleOutputCharacter 유니코드 또는 ANSI 문자 문자열을 화면 버퍼에 씁니다.
ReadConsoleOutputAttribute 화면 버퍼에서 텍스트 및 배경색 특성의 문자열을 복사합니다.
WriteConsoleOutputAttribute 텍스트 및 배경색 특성의 문자열을 화면 버퍼에 씁니다.
FillConsoleOutputCharacter 단일 유니코드 또는 ANSI 문자를 화면 버퍼의 지정된 수의 연속 셀에 씁니다.
FillConsoleOutputAttribute 텍스트 및 배경색 특성 조합을 화면 버퍼의 지정된 연속 셀 수에 씁니다.

이러한 모든 함수의 경우 행의 마지막 셀이 발견되면 읽기 또는 쓰기가 다음 행의 첫 번째 셀로 래핑됩니다. 콘솔 화면 버퍼의 마지막 행 끝에 도달하면 쓰기 함수는 기록되지 않은 모든 문자 또는 특성을 카드, 읽기 함수는 실제로 작성된 문자 또는 특성의 수를 보고합니다.

다음 함수는 화면 버퍼의 지정된 위치에 있는 문자 셀의 사각형 블록에서 읽거나 씁니다.

함수 설명
ReadConsoleOutput 지정된 화면 버퍼 셀 블록의 문자 및 색 데이터를 대상 버퍼의 지정된 블록에 복사합니다.
WriteConsoleOutput 원본 버퍼의 지정된 블록에서 지정된 화면 버퍼 셀 블록에 문자 및 색 데이터를 씁니다.

이러한 함수는 화면 버퍼와 원본 또는 대상 버퍼를 CHAR_INFO 구조의 2차원 배열(각 셀에 대한 문자 및 색 특성 데이터 포함)으로 처리합니다. 함수는 원본 또는 대상 버퍼의 문자 셀에서 너비와 높이를 지정하고 버퍼에 대한 포인터는 2차원 배열의 원점 셀(0,0)에 대한 포인터로 처리됩니다. 함수는 SMALL_RECT 구조를 사용하여 콘솔 화면 버퍼에서 액세스할 사각형을 지정하고 원본 또는 대상 버퍼의 왼쪽 위 셀 좌표에 따라 해당 버퍼의 해당 사각형 위치가 결정됩니다.

이러한 함수는 지정된 화면 버퍼 사각형을 자동으로 클리핑하여 콘솔 화면 버퍼의 경계 내에 맞춥니다. 예를 들어 사각형이 오른쪽 아래 좌표(열 100, 행 50)를 지정하고 콘솔 화면 버퍼의 너비가 80열에 불과하면 좌표가 잘려서(열 79, 행 50) 마찬가지로, 이 조정된 사각형은 원본 또는 대상 버퍼의 경계 내에 맞게 다시 잘립니다. 읽거나 쓸 실제 사각형의 화면 버퍼 좌표가 지정됩니다. 이러한 함수를 사용하는 예제는 문자 및 특성의 읽기 및 쓰기 블록을 참조 하세요.

이 그림은 콘솔 화면 버퍼에서 블록을 읽을 때 및 블록이 대상 버퍼에 복사될 때 클리핑이 발생하는 ReadConsoleOutput 작업을 보여 줍니다. 함수는 복사한 실제 화면 버퍼 사각형을 보고합니다.

screen buffer window with destination buffer