Format String
String format adalah token yang ditafsirkan yang dipahami mesin NDR. String format sering disebut sebagai MOP; dokumentasi ini menggunakan string format istilah di seluruh.
Agar lebih tepat, karakter format adalah token yang dapat ditafsirkan individu (atom). Setiap karakter format berukuran satu byte. String format adalah urutan karakter format atau karakter format dan data numerik. Istilah deskriptor juga digunakan untuk penamaan urutan umum; misalnya, string format parameter atau deskriptor parameter adalah string format yang digunakan untuk menjelaskan parameter rutinitas.
Karakter format memiliki nama simbolis saran seperti FC_LONG atau FC_STRUCT. Semua karakter string format yang digunakan oleh MIDL dan mesin NDR didefinisikan dalam file Ndrtypes.h.
Dua tabel string format utama digunakan oleh mesin: tabel string format prosedur, __MIDL_ProcFormatString, yang menyimpan deskriptor prosedur; dan tabel string format jenis, __MIDL_TypeFormatString, yang menyimpan deskriptor jenis data. Kompilator menghasilkan keduanya ke dalam file stub utama (*_c.c, *_s.c, *_p.c). Tabel string format prosedur sebagian besar digunakan oleh berbagai interpreter tetapi juga digunakan untuk konversi buffer terlepas dari mode pengkompilasi. Tabel string format jenis digunakan saat memanggil mesin NDR inti untuk menunjukkan jenis data tertentu yang akan dikerjakan.
Notasi yang digunakan dalam dokumen ini mengikuti panduan deskripsi pemrograman umum, dengan bilah ( | ) digunakan untuk menunjukkan konstruksi alternatif dan kurung siku ( [ ] ) yang digunakan untuk menunjukkan elemen opsional. String format sering ditumpuk untuk keterbacaan (akuntabilitas). Di seluruh dokumen ini, FC menunjukkan karakter format tunggal. Karakter format disajikan di semua CAPS, menggunakan nama simbolis aktualnya. Bidang arbitrer lainnya diwakili oleh nama dan ukuran.
Kurung sudut ( <> ) digunakan untuk menunjukkan ukuran deskriptor. Konvensi yang ditunjukkan dalam tabel berikut digunakan.
Notasi | Makna |
---|---|
< n> | Ukuran deskriptor adalah n byte. |
<> | Ukuran deskriptor bervariasi. |
{<>}* | Deskriptor diulang beberapa kali (0,1,2 ...). |
Karakter format berikut memiliki arti khusus.
Karakter | Makna |
---|---|
FC_END | Menunjukkan akhir dari beberapa string format. |
FC_PAD | Karakter pad yang tidak diinterpretasi. |