전처리기 지시문
Important
최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.
자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.
GPD 파일에는 GPD 파일 내 섹션의 조건부 구문 분석을 제어하는 데 사용할 수 있는 전처리기 지시문이 포함될 수 있습니다. 다음 표에서는 GPD 파일에서 사용할 수 있는 전처리기 지시문에 대해 설명합니다.
PreprocessorDirective | 정의 |
---|---|
*정의: SymbolName | 기호를 정의합니다. |
*정의되지 않은: SymbolName | 이전에 정의된 기호를 제거합니다. |
*Ifdef: SymbolName | GPD 파일 항목 블록의 시작을 나타냅니다. 지정된 기호가 정의되면 이 지시문과 다음 *Ifdef**, *Elseifdef, *Else 또는 *Endif 지시문 사이의 GPD 파일 항목이 GPD 파서에서 처리됩니다. |
*Elseifdef : SymbolName | 지정된 기호가 정의되고 이전 *Ifdef 또는 *Elseifdef 지시문에서 지정한 기호가 정의되지 않은 경우 이 지시문과 다음 *Ifdef, *Elseifdef, *Else 또는 *Endif 지시문 사이의 GPD 파일 항목은 GPD 파서에서 처리됩니다. |
*그 외: | 이전 *Ifdef 또는 *Elseifdef 지시문에서 지정한 기호가 정의되지 않은 경우 이 지시문과 다음 *Ifdef 또는 *Endif 지시문 사이의 GPD 파일 항목은 GPD 파서에서 처리됩니다. |
*Endif: | GPD 파일 항목 블록의 끝을 나타냅니다. |
*포함: "FileName" | 추가 GPD 파일의 이름을 지정합니다. 자세한 내용은 미니 드라이버에서 여러 GPD 파일 사용을 참조 하세요. |
*SetPPPrefix : PrefixString | 앞에 추가된 접두사 문자열을 전처리기 지시문으로 변경합니다. 자세한 내용은 전처리기 지시문 접두사 변경 섹션을 참조하세요. |
조건부 전처리기 지시문을 중첩할 수 있습니다. 각 중첩 수준에서 조건부 전처리기 지시문을 사용하는 시퀀스는 다음과 같습니다.
*Ifdef: Symbol1 GPD 파일 섹션
*Elseifdef: Symbol2 GPD 파일 섹션
*Elseifdef: Symbol3 GPD 파일 섹션
*Elseifdef: Symbol4 GPD 파일 섹션
...
*Else: GPD 파일 섹션
*Endif:
사용되는 각 *Ifdef 지시문에 대해 *Endif 가 필요합니다. *Elseifdef 및 *Else 지시문은 선택 사항입니다. 각 GPD 파일 섹션에는 GPD 파일 항목과 필요에 따라 조건부 전처리기 지시문의 중첩된 시퀀스가 포함될 수 있습니다.
*Define를 사용하여 정의된 모든 기호는 *Undefine을 사용하여 명시적으로 정의되지 않은 상태로 유지됩니다.
*Include 지시문을 사용하면 추가 GPD 파일의 이름을 지정할 수 있습니다. 자세한 내용은 미니 드라이버에서 여러 GPD 파일 사용을 참조 하세요.
*IgnoreBlock GPD 항목은 전처리기가 GPD 파서 전에 실행되기 때문에 전처리기 지시문에 영향을 주지 않습니다.
전처리기 지시문 접두사 변경
*SetPPPrefix 지시문을 사용하면 전처리기 지시문과 함께 사용되는 접두사를 변경할 수 있습니다. 즉, 이 지시문을 사용하여 전처리기 지시문을 앞에 추가하는 별표(*) 문자를 다른 문자 또는 문자열로 바꿀 수 있습니다.
예를 들어 GPD 파일에 다음 지시문이 포함된 경우
*SetPPPrefix: #SpecialPrefix#
그런 다음 전처리기에서 시작하는 전처리기 지시문 검색을 중지하고 대신 #SpecialPrefix#으로 * 시작하는 지시문을 찾습니다. 다음 시퀀스는 전처리기 접두사를 일시적으로 #SpecialPrefix#으로 변경한 다음, 이를 복원합니다*.
*SetPPPrefix: #SpecialPrefix#
#SpecialPrefix#Ifdef: WINNT_50
#SpecialPrefix#Include: "ExtraGPD.gpd"
#SpecialPrefix#Endif:
#SpecialPrefix#SetPPPrefix: *
이 기능의 주요 목적은 향후 운영 체제 버전용으로 작성된 GPD 파일이 Windows 2000과 호환되도록 하는 것입니다. 예를 들어 이후 버전의 운영 체제용 GPD 파일에 Windows 2000에서 지원하는 별표 접두사 전처리기 지시문과 충돌하는 GPD 파일 항목이 포함될 수 있다고 가정합니다. 접두사를 변경하여 향후 운영 체제 버전을 위해 작성된 GPD 파일을 Windows 2000과 함께 사용할 수도 있습니다. 예제는 다음과 같이 생성될 수 있습니다.
*Ifdef: WINNT_70
*SetPPPrefix: #SpecialPrefix#
*% Do special, OS-specific processing of
*% GPD file entries that might conflict with
*% asterisk-prefixed preprocessor directives.
#SpecialPrefix#SetPPPrefix: *
*Endif:
이 기술은 전처리기가 찾는 접두사만 변경합니다. 파서에서 인식되는 키워드는 항상 별표 앞에 있어야 합니다.
미리 정의된 전처리기 기호
Microsoft는 다음 전처리기 기호를 정의합니다.
기호 | 정의된 위치 | 정의 |
---|---|---|
WINNT_51 | Windows XP용 GPD 전처리기 | 환경은 Windows XP입니다. |
WINNT_50 | Windows XP 및 Windows 2000용 GPD 전처리기 | 환경은 Windows 2000입니다. |
WINNT_40 | Windows XP, Windows 2000 및 Windows NT 4.0용 GPD 전처리기 | 환경은 Windows NT 4.0입니다. |
PARSER_VER_1.0 | Windows NT 4.0, Windows 2000 및 Windows XP용 GPD 전처리기 | GPD 파서 버전 1.0 |
WINNT_40, WINNT_50 및 WINNT_51 기호는 Windows NT 4.0, Windows 2000 및 Windows XP와 호환되는 GPD 파일을 만드는 데 유용합니다. 예를 들어 Windows XP에서 Windows 2000에서 지원되지 않는 프린터 기능을 지원하는 경우 *Ifdef: WINNT_51 및 *Endif 지시문으로 제한된 GPD 파일 섹션 내에서 해당 기능을 지정할 수 있습니다.