Sakelar /Os
Sakelar /Os menentukan metode mode campuran ke kode stub marshal yang diteruskan antara klien dan server.
midl /Os
Sakelar ini tidak memiliki parameter.
Ada masalah penting yang perlu dipertimbangkan sebelum memutuskan metode untuk kode marshaling. Masalah ini menyangkut ukuran dan performa. Pengkompilasi MIDL menyediakan dua metode untuk kode marshaling: mode campuran (/Os) dan sepenuhnya ditafsirkan (/Oi). Metode yang ditafsirkan sepenuhnya menerjemahkan data secara offline. Ini mengurangi ukuran kode stub secara besar-besaran, tetapi juga mengakibatkan penurunan performa.
Gunakan mode default MIDL /Oicf /robust untuk semua tujuan selain kompatibilitas mundur. Mode ini adalah mode standar aman pengkompilasi MIDL; mode lain harus digunakan hanya setelah pertimbangan yang cermat terhadap implikasi keamanan, menyadari bahwa ekstensi di masa mendatang hanya akan diterapkan untuk mode default. Dalam mode campuran, compiler marshals beberapa parameter sebaris dalam stub yang dihasilkan. Meskipun ini menghasilkan ukuran stub yang lebih besar, hal ini juga dapat menawarkan peningkatan performa.
MIDL memberikan dukungan penuh untuk array multidimensi dan penunjuk berukuran multidimensi hanya dalam mode /Oicf . Dalam mode /Os dan /Oi , kompilator mendukung kasus sederhana, seperti array ukuran tetap. Menggunakan array multidemia dalam mode /Os atau /Oi dapat mengakibatkan parameter yang tidak di-marshalasi dengan benar. Microsoft menyarankan agar Anda menggunakan sakelar baris perintah /Oicf saat antarmuka Anda menentukan parameter yang merupakan array multidimensi atau penunjuk berukuran multidimensi.
Untuk lebih menentukan tingkat gradasi dalam cara data di-marshal, versi RPC ini menyediakan atribut [optimize]. Atribut ini digunakan sebagai atribut antarmuka ACF atau atribut operasi untuk memilih mode marshaling.
midl /Os filename.idl