atribut pragma
Direktif #pragma midl_echo menginstruksikan MIDL untuk memancarkan string yang ditentukan, tanpa karakter kutipan, ke dalam file header yang dihasilkan.
#pragma midl_echo("string")
#pragma token-sequence
#pragma pack (n)
#pragma pack ( [push] [, id] [, n} )
#pragma pack ( [pop] [, id] [, n} )
Parameter
-
string
-
Menentukan string yang disisipkan ke dalam file header yang dihasilkan. Tanda kutip dihapus selama proses penyisipan.
-
urutan token
-
Menentukan urutan token yang dimasukkan ke dalam file header yang dihasilkan sebagai bagian dari direktif #pragma tanpa diproses oleh pengkompilasi MIDL.
-
n
-
Menentukan ukuran paket saat ini. Nilai yang valid adalah 1, 2, 4, 8, dan 16.
-
id
-
Menentukan pengidentifikasi pengguna.
Keterangan
Arahan praproses bahasa C yang muncul dalam file IDL diproses oleh praprosesor pengkompilasi C. Arahan #define dalam file IDL tersedia selama kompilasi MIDL, meskipun tidak untuk pengkompilasi C.
Misalnya, ketika pra-prosesor menemukan direktif "#define WINDOWS 4", pra-prosesor menggantikan semua kemunculan "WINDOWS" dalam file IDL dengan "4". Simbol "WINDOWS" tidak tersedia pada waktu kompilasi C.
Untuk mengizinkan definisi makro praprosesor C melewati pengkompilasi MIDL ke pengkompilasi C, gunakan direktif #pragma midl_echo atau cpp_quote . Arahan ini menginstruksikan pengkompilasi MIDL untuk menghasilkan file header yang berisi string parameter dengan tanda kutip dihapus. Arahan #pragma midl_echo dan cpp_quote setara.
Direktif paket #pragma digunakan oleh pengkompilasi MIDL untuk mengontrol pengemasan struktur. Ini mengambil alih sakelar baris perintah /Zp . Opsi paket (n) mengatur ukuran paket saat ini ke nilai tertentu: 1, 2, 4, 8, atau 16. Opsi paket (dorong) dan paket (pop) memiliki karakteristik berikut:
- Pengkompilasi mempertahankan tumpukan pengemasan. Elemen tumpukan pengemasan mencakup ukuran paket dan id opsional. Tumpukan hanya dibatasi oleh memori yang tersedia dengan ukuran paket saat ini di bagian atas tumpukan.
- Paket (pendorongan) menghasilkan ukuran paket saat ini yang didorong ke tumpukan pengemasan. Tumpukan dibatasi oleh memori yang tersedia.
- Pack (push,n) sama dengan pack (push) diikuti dengan pack (n).
- Kemas (push, id) juga mendorong id ke tumpukan kemasan bersama dengan ukuran paket.
- Pack (push, id, n) sama dengan pack (push, id) diikuti dengan pack (n).
- Paket (pop) menghasilkan munculnya tumpukan pengemasan. Pop yang tidak seimbang menyebabkan peringatan dan mengatur ukuran paket saat ini ke nilai baris perintah.
- Jika paket (pop, id, n) ditentukan, maka n diabaikan.
Pengkompilasi MIDL menempatkan string yang ditentukan dalam arahan \cpp_quote dan pragma dalam file header dalam urutan yang ditentukan dalam file IDL dan relatif terhadap komponen antarmuka lain dalam file IDL. String biasanya akan muncul di bagian isi antarmuka file IDL setelah semua operasi impor .
Kompilator MIDL tidak mencoba memproses arahan #pragma yang tidak dimulai dengan awalan "midl_." Arahan #pragma lainnya dalam file IDL diteruskan ke file header yang dihasilkan tanpa perubahan.
Contoh
/* IDL file */
#pragma midl_echo("#define UNICODE")
cpp_quote("#define __DELAYED_PREPROCESSING__ 1")
#pragma hdrstop
#pragma check_pointer(on)
/* generated header file */
#define UNICODE
#define __DELAYED_PREPROCESSING__ 1
#pragma hdrstop
#pragma check_pointer(on)
Lihat juga