Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sakelar /Oi dan /Oic mengarahkan pengkompilasi MIDL untuk menggunakan metode marshaling yang ditafsirkan sepenuhnya. Sakelar /Oicf menyediakan peningkatan performa tambahan.
midl /{Oi | Oic | Oif | Oicf}
Opsi Pengalihan
-
Oi
-
Menentukan metode yang sepenuhnya ditafsirkan untuk marshaling kode stub yang diteruskan antara klien dan server.
Nota
Sakelar ini kedaluarsa. Disarankan agar sakelar /Oicf digunakan di tempatnya.
-
Oki
-
Menentukan metode proksi tanpa kode dari marshaling yang menyediakan semua fitur /Oi dan juga lebih mengurangi ukuran kode stub klien untuk antarmuka objek.
Nota
Sakelar ini kedaluarsa. Disarankan agar sakelar /Oicf digunakan di tempatnya.
-
Oif atau Oicf
-
Menentukan metode proksi tanpa kode dari marshaling yang mencakup semua fitur yang disediakan oleh /Oi dan /Oic tetapi menggunakan interpreter baru (string format cepat) yang memberikan performa yang lebih baik daripada /Oi atau /Oic. Sakelar ini mencakup peningkatan RPC terbaru dan direkomendasikan untuk skenario RPC modern.
Komentar
Harap perhatikan pembatasan yang terkait dengan platform pendukung.
Pengkompilasi MIDL 3.0 menyediakan dua metode untuk kode marshaling: sepenuhnya ditafsirkan ( /Oi, /Oic dan /Oicf) dan mode campuran ( /Os). Dimulai dengan MIDL versi 6.0.359, compiler MIDL menghasilkan stub /Oicf/robust secara default. Beberapa fitur bahasa tidak didukung dalam beberapa mode. Dalam hal ini, pengkompilasi secara otomatis beralih ke mode yang sesuai dan mengeluarkan peringatan.
Jika performa menjadi perhatian, metode mode campuran ( /Os) dapat menjadi pendekatan terbaik. Dalam mode ini, pengkompilasi memilih untuk marshal beberapa parameter sebaris dalam tinta yang dihasilkan. Meskipun ini menghasilkan ukuran stub yang lebih besar, ia menawarkan peningkatan performa.
Data marshal metode yang sepenuhnya ditafsirkan benar-benar offline. Ini sangat mengurangi ukuran kode stub, tetapi mengakibatkan penurunan performa. Selain itu, dengan metode yang ditafsirkan sepenuhnya, ada batas 16 parameter untuk setiap prosedur. Prosedur apa pun yang berisi lebih dari 16 parameter akan secara otomatis diproses dalam mode /Os . Di antara mode yang ditafsirkan, /Oicf menawarkan performa terbaik dan /Oi menawarkan kompatibilitas mundur terbaik.
Anda mungkin ingin menggunakan opsi /Oif jika aplikasi Anda menggunakan fitur MIDL yang diperkenalkan dengan MIDL 3.0, seperti atribut [wire_marshal] dan [user_marshal]. Jika aplikasi Anda menggunakan pipa , Anda harus menggunakan opsi /Oif ; jika Anda menentukan mode lain, pengkompilasi MIDL akan beralih ke /Oif.
Untuk menyempurnakan cara kode stub Anda di-marshal, Microsoft RPC menyediakan atribut ACF [optimisasi]. Atribut ini digunakan sebagai atribut antarmuka atau atribut operasi untuk memilih mode marshaling untuk antarmuka individual atau untuk operasi individual.
Konvensi Panggilan
Stub yang dihasilkan oleh pengkompilasi MIDL dalam metode yang ditafsirkan menggunakan sakelar /Oi, /Oic, atau /Oif harus dikompilasi sebagai prosedur stdcall atau cdecl selama kompilasi C. Konvensi panggilan PASCAL atau Fastcall tidak akan berfungsi. Selain itu, stub server harus dikompilasi sebagai stdcall.
Examples
midl /Oi filename.idl
midl /Oic filename.idl
midl /Oif filename.idl
Baca juga