Aracılığıyla paylaş


Değiştirilebilir Parametreler Kullanma (Kaydedicinin Ön İşlemcisi)

Not

Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.

Değiştirilebilir parametreler, kayıt şirketinin istemcisinin çalışma zamanı verilerini belirtmesine olanak sağlar. Kayıt Defteri, bunun için betiğinizdeki değiştirilebilir parametrelerle ilişkili değerleri girdiği bir değiştirme haritasını tutar. Kayıt Yetkilisi bu girişleri çalışma anında yapar.

%MODULE% kullanılıyor

ATL Denetim Sihirbazı%MODULE% kullanan bir betiği otomatik olarak oluşturur. ATL, sunucunuzun DLL veya EXE dosyasının gerçek konumu için bu değiştirilebilir parametreyi kullanır.

Çalışma Zamanı Verilerini Betik Verileriyle Birleştirme

Ön işlemcinin bir diğer kullanımı da çalışma zamanı verilerini betik verileriyle birleştirmektir. Örneğin, sonuna ", 1" dizesi eklenmiş bir modülün tam yolunu içeren bir girdi gerektiğini varsayalım. İlk olarak aşağıdaki genişletmeyi tanımlayın:

'MySampleKey' = s '%MODULE%, 1'

Ardından, Komut Dosyalarını Çağırma başlığında listelenen betik işleme yöntemlerinden birini çağırmadan önce eşlemeye bir değişiklik ekleyin:

TCHAR szModule[_MAX_PATH];
::GetModuleFileName(_AtlBaseModule.GetModuleInstance(), szModule, _MAX_PATH);
p->AddReplacement(OLESTR("Module"), T2OLE(szModule));   

Betiği ayrıştırma sırasında kayıt işlemcisi '%MODULE%, 1' öğesini c:\mycode\mydll.dll, 1 öğesine genişletir.

Not

Bir Registrar betiğinde, 4K en yüksek token boyutudur. (Belirteç, söz dizimindeki tanınabilir herhangi bir öğedir.) Bu, ön işlemci tarafından oluşturulan veya genişletilen belirteçleri içerir.

Not

Çalışma zamanında yerine geçecek değerleri değiştirmek için, script'teki DECLARE_REGISTRY_RESOURCE veya DECLARE_REGISTRY_RESOURCEID makro çağrısını kaldırın. Bunun yerine, CAtlModule::UpdateRegistryFromResourceD veya CAtlModule::UpdateRegistryFromResourceS yöntemini çağıran kendi yönteminizle değiştirin ve _ATL_REGMAP_ENTRY yapı dizinizi iletin. _ATL_REGMAP_ENTRY dizinizin {NULL,NULL} olarak ayarlanmış en az bir girdisi olmalıdır ve bu girdi her zaman son girdi olmalıdır. Aksi takdirde, UpdateRegistryFromResource çağrıldığında bir erişim ihlali hatası meydana gelir.

Not

Bir proje yürütülebilir dosya çıkışı verecek şekilde oluşturulurken ATL, çalışma zamanında %MODULE% registrar betik parametresiyle oluşturulan yol adının çevresine otomatik olarak tırnak işaretleri ekler. Yol adının tırnak işaretlerini içermesini istemiyorsanız, bunun yerine yeni %MODULE_RAW% parametresini kullanın.

DLL çıktısı veren bir proje oluştururken, %MODULE% veya %MODULE_RAW% kullanıldığında, ATL yol adına tırnak işareti eklemez.

Ayrıca bkz.

Kayıt Yöneticisi Betikleri Oluşturma