/sakelar yang kuat
Sakelar /robust memberi tahu pengompilasi MIDL untuk menghasilkan informasi pemeriksaan kesalahan tambahan, yang digunakan mesin NDR untuk melakukan pemeriksaan integritas pada durasi.
midl /robust {/Oicf | /Oif }
-
/Oicf
-
/Oif
-
Sakelar ini identik dalam fungsionalitasnya. Mereka menentukan metode proksi tanpa kode dari marshaling dan menggunakan string format cepat untuk meningkatkan performa. Lihat / Oi.
Menggunakan sakelar /robust menghasilkan informasi tambahan yang memungkinkan mesin Network Data Representation (NDR) melakukan pemeriksaan kesalahan run-time pada argumen yang berkorelasi dalam array dinamis, penyatuan, dan penunjuk antarmuka keluar dalam aplikasi DCOM. Sakelar /robust hanya tersedia di windows 2000 dan versi Windows yang lebih baru.
Argumen yang berkorelasi adalah argumen yang menggunakan salah satu atribut yang memungkinkan ukuran objek data ditentukan pada durasi: size_is, length_is, first_is, last_is, max_is, switch_is, dan iid_is. Sesuai dengan spesifikasi OSF-DCE untuk representasi kawat, argumen yang berkorelasi ini muncul di dua tempat yang berbeda. Misalnya, pertimbangkan penggunaan khas atribut size_is :
HRESULT Func1([in] long Size,
[in, size_is(Size)]BAR_TYPE *pBarType);
Dalam contoh ini, klien melewati panjang yang menentukan ukuran blok BAR_TYPEs (dalam hal jumlah elemen BAR_TYPES), dan penunjuk ke blok BAR_TYPEs yang sebenarnya. Argumen Ukuran berkorelasi dengan argumen pBarType. Sesuai dengan spesifikasi OSF-DCE, argumen Ukuran diwakili dua kali pada kawat—pertama sebagai dirinya sendiri dan kemudian dengan array elemen BAR_TYPE yang mewakili argumen pBarType. Setiap argumen tidak terenkripsi secara independen, sesuai dengan representasi kawatnya sendiri. Biasanya, argumen Ukuran dan salinannya, yang digunakan untuk mewakili bagian dari argumen lain, memiliki nilai yang sama. Namun, jika argumen Ukuran rusak (misalnya, ketika blok BAR_TYPES lebih besar dari apa yang dialokasikan), aplikasi server mungkin berhenti merespons, karena menggunakan nilai argumen Ukuran untuk mengukur data masuk.
Sakelar /robust diperlukan untuk menerapkan pemeriksaan rentang yang valid dengan atribut rentang .
midl /robust /Oicf filename.idl