Menggunakan Parameter yang Dapat Diganti (Pra-pemroses Registrar)

Catatan

Pustaka Templat Aktif (ATL) terus didukung. Namun, kami tidak lagi menambahkan fitur atau memperbarui dokumentasi.

Parameter yang dapat diganti memungkinkan klien Registrar menentukan data run-time. Untuk melakukan ini, Registrar mempertahankan peta pengganti di mana ia memasukkan nilai yang terkait dengan parameter yang dapat diganti dalam skrip Anda. Pencatat membuat entri ini pada waktu proses.

Menggunakan %MODULE%

Pengendali ATL Wizard secara otomatis menghasilkan skrip yang menggunakan %MODULE%. ATL menggunakan parameter yang dapat diganti ini untuk lokasi aktual DLL atau EXE server Anda.

Menggabungkan Data Run-Time dengan Data Skrip

Penggunaan lain dari prapemroscessor adalah menggabungkan data run-time dengan data skrip. Misalnya, entri diperlukan yang berisi jalur lengkap ke modul dengan string ", 1" ditambahkan di akhir. Pertama, tentukan ekspansi berikut:

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

Kemudian, sebelum memanggil salah satu metode pemrosesan skrip yang tercantum dalam Memanggil Skrip, tambahkan pengganti ke peta:

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

Selama penguraian skrip, Registrar mengembangkan '%MODULE%, 1' menjadi c:\mycode\mydll.dll, 1.

Catatan

Dalam skrip Registrar, 4K adalah ukuran token maksimum. (Token adalah elemen yang dapat dikenali dalam sintaks.) Ini termasuk token yang dibuat atau diperluas oleh preprocessor.

Catatan

Untuk mengganti nilai pengganti pada waktu proses, hapus panggilan dalam skrip ke makro DECLARE_REGISTRY_RESOURCE atau DECLARE_REGISTRY_RESOURCEID . Sebagai gantinya, ganti dengan metode Anda sendiri UpdateRegistry yang memanggil CAtlModule::UpdateRegistryFromResourceD atau CAtlModule::UpdateRegistryFromResourceS, dan lewati array struktur _ATL_REGMAP_ENTRY Anda. Array _ATL_REGMAP_ENTRY Anda harus memiliki setidaknya satu entri yang diatur ke {NULL,NULL}, dan entri ini harus selalu menjadi entri terakhir. Jika tidak, kesalahan pelanggaran akses akan dihasilkan ketika UpdateRegistryFromResource dipanggil.

Catatan

Saat membangun proyek yang menghasilkan executable, ATL secara otomatis menambahkan tanda kutip di sekitar nama jalur yang dibuat pada run time dengan parameter skrip pendaftar %MODULE %. Jika Anda tidak ingin nama jalur menyertakan tanda kutip, gunakan parameter %MODULE_RAW% baru sebagai gantinya.

Saat membuat proyek yang menghasilkan DLL, ATL tidak akan menambahkan tanda kutip ke nama jalur jika %MODULE% atau %MODULE_RAW% digunakan.

Lihat juga

Membuat Skrip Registrar