Aracılığıyla paylaş


Ön işlemci yönergeleri

Önemli

Modern yazdırma platformu, Windows'un yazıcılarla iletişim kurmak için tercih ettiği araçlardır. Yazıcı cihazı geliştirme için Windows 10 ve 11'deki yazdırma deneyimini özelleştirmek için Yazdırma Desteği Uygulamaları (PSA) ile birlikte Microsoft'un IPP gelen kutusu sınıf sürücüsünü kullanmanızı öneririz.

Daha fazla bilgi için bkz. Yazdırma Desteği Uygulaması v1 ve v2 tasarım kılavuzu.

GPD dosyaları, GPD dosyasındaki bölümlerin koşullu ayrıştırmasını denetlemek için kullanılabilen önişlemci yönergeleri içerebilir. Aşağıdaki tabloda, GPD dosyalarında kullanılabilecek ön işlemci yönergeleri açıklanmaktadır.

Ön İşlemci Direktifi Tanım
* Tanımla: SymbolName Bir simge tanımlar.
* Tanımsız: SymbolName Önceden tanımlanmış bir simgeyi kaldırır.
* Ifdef: SymbolName GPD dosya girdileri bloğunun başlangıcını gösterir.

Belirtilen simge tanımlanmışsa, bu yönerge ile sonraki *Ifdef**, *Elseifdef, *Else veya *Endif yönergesi arasındaki GPD dosya girişleri GPD ayrıştırıcısı tarafından işlenir.
* Elseifdef : SymbolName Belirtilen simge tanımlanmışsa ve önceki *Ifdef veya *Elseifdef yönergesi tarafından belirtilen simge tanımlanmamışsa, bu yönerge ile sonraki *Ifdef, *Elseifdef, *Else veya *Endif yönergesi arasındaki GPD dosya girişleri GPD ayrıştırıcısı tarafından işlenir.
* Aksi halde: Önceki *Ifdef veya *Elseifdef yönergesi tarafından belirtilen simge tanımlanmamışsa, bu yönerge ile sonraki *Ifdef veya *Endif yönergesi arasındaki GPD dosya girişleri GPD ayrıştırıcısı tarafından işlenir.
* Endif: GPD dosya girdileri bloğunun sonunu gösterir.
* Include: "FileName" Ek bir GPD dosyasının adını belirtir. Daha fazla bilgi için bakınız Minidriver'daBirden Çok GPD Dosyası Kullanma.
* SetPPPrefix : PrefixString Önişlemci yönergelerine eklenen ön eki değiştirir. Daha fazla bilgi için Önişlemci Yönerge Ön Ekini Değiştirme bölümüne bakın.

Koşullu önişlemci yönergeleri iç içe geçmiş olabilir. Her iç içe yerleştirme düzeyinde, koşullu önişlemci yönergelerini kullanma sırası aşağıdaki gibidir:

* Ifdef: Symbol1 GPD dosyası bölümü

* Elseifdef: Symbol2 GPD dosyası bölümü

* Elseifdef: Symbol3 GPD dosyası bölümü

* Elseifdef: Symbol4 GPD dosyası bölümü

...

* Else: GPD dosya bölümü

* Endif:

Kullanılan her *Ifdef yönergesi için *Endif gereklidir. *Elseifdef ve *Else yönergeleri isteğe bağlıdır. Her GPD dosyası bölümü, GPD dosya girdileri ve isteğe bağlı olarak koşullu ön işlemci yönergelerinin iç içe dizisini içerebilir.

*Tanımla kullanılarak tanımlanan tüm simgeler, *Tanımsızla kullanılarak açıkça tanımsız yapılana kadar tanımlı kalır.

*Include yönergesi ek bir GPD dosyasının adını belirtmenize olanak tanır. Daha fazla bilgi için bakınız Minidriver'daBirden Çok GPD Dosyası Kullanma.

*IgnoreBlock GPD girişinin ön işlemci yönergelerini etkilemediğini unutmayın çünkü ön işlemci GPD ayrıştırıcıdan önce yürütülür.

Önişlemci YönergeSi Ön Ekini Değiştirme

*SetPPPrefix yönergesi, önişlemci yönergeleriyle kullanılan ön eki değiştirmenize olanak tanır. Yani, ön işlemci yönergelerini başka bir karakter veya dizeyle önceden ekleyen yıldız (*) karakterini değiştirmek için bu yönergeyi kullanabilirsiniz.

Örneğin, GPD dosyanız aşağıdaki yönergeyi içeriyorsa:

*SetPPPrefix: #SpecialPrefix#

ardından ön işlemci ile * başlayan önişlemci yönergelerini aramayı durdurur ve bunun yerine #SpecialPrefix# ile başlayan yönergeleri arar. Aşağıdaki sıra, ön işlemci ön ekini geçici olarak #SpecialPrefix# olarak değiştirir ve sonra * orijinal haline geri yükler.

*SetPPPrefix: #SpecialPrefix#
#SpecialPrefix#Ifdef: WINNT_50
#SpecialPrefix#Include: "ExtraGPD.gpd"
#SpecialPrefix#Endif:
#SpecialPrefix#SetPPPrefix: *

Bu özelliğin birincil amacı, gelecekteki işletim sistemi sürümleri için yazılmış GPD dosyalarının Windows 2000 ile uyumlu olmasını sağlamaktır. Örneğin, işletim sisteminin gelecekteki bir sürümü için GPD dosyalarının Windows 2000 tarafından desteklenen yıldız ön eki ön işlemci yönergeleriyle çakışan GPD dosya girdileri içerebileceğini varsayalım. Ön ek değiştirilerek, gelecekteki işletim sistemi sürümü için yazılmış bir GPD dosyası Windows 2000 ile de kullanılabilir. Aşağıdaki gibi bir örnek oluşturulabilir:

*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:

Bu tekniğin yalnızca ön işlemcinin arayabilecekleri ön eki değiştirdiğini unutmayın. Ayrıştırıcı tarafından tanınan anahtar sözcüklerin önünde her zaman yıldız işareti bulunmalıdır.

Önceden Tanımlanmış Önişlemci Simgeleri

Microsoft aşağıdaki ön işlemci simgelerini tanımlar.

Sembol Tanımlandığı Yer Tanım
WINNT_51 Windows XP için GPD ön işlemcisi Ortam, Windows XP'dir.
WINNT_50 Windows XP ve Windows 2000 için GPD ön işlemcisi Ortam, Windows 2000'dir.
WINNT_40 Windows XP, Windows 2000 ve Windows NT 4.0 için GPD ön işlemcileri Ortam, Windows NT 4.0'dır.
PARSER_VER_1.0 Windows NT 4.0, Windows 2000 ve Windows XP için GPD ön işlemcileri GPD ayrıştırıcı sürüm 1.0

WINNT_40, WINNT_50 ve WINNT_51 simgeleri Windows NT 4.0, Windows 2000 ve Windows XP ile uyumlu GPD dosyaları oluşturmak için kullanışlıdır. Örneğin, Windows XP Windows 2000 tarafından desteklenmeyen bir yazıcı özelliğini destekliyorsa, bu özellik *Ifdef: WINNT_51 ve *Endif yönergeleriyle sınırlanan bir GPD dosyası bölümünde belirtilebilir.