Bagikan melalui


Sakelar /Oi

Sakelar /Oi dan /Oic mengarahkan pengkompilasi MIDL untuk menggunakan metode marshaling yang sepenuhnya ditafsirkan. Sakelar /Oicf menyediakan peningkatan performa tambahan.

midl /{Oi | Oic | Oif | Oicf}

Opsi Sakelar

Oi

Menentukan metode yang sepenuhnya ditafsirkan untuk marshaling kode stub yang diteruskan antara klien dan server.

Catatan

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.

Catatan

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.

Keterangan

Harap perhatikan pembatasan yang terkait dengan platform pendukung.

Pengkompilasi MIDL 3.0 menyediakan dua metode untuk kode marsekal: sepenuhnya ditafsirkan ( /Oi, /Oic dan /Oicf) dan mode campuran ( /Os). Dimulai dengan MIDL versi 6.0.359, pengompilasi MIDL menghasilkan /Oicf /stub yang kuat 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 lonjakan yang dihasilkan. Meskipun menghasilkan ukuran stub yang lebih besar, ini menawarkan peningkatan performa.

Metode yang ditafsirkan sepenuhnya menerjemahkan data secara 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 [optimize]. 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.

Contoh

midl /Oi filename.idl

midl /Oic filename.idl

midl /Oif filename.idl

Lihat juga

/Kuat

/no_robust

Sintaks Baris Perintah MIDL Umum

/Os

Mengoptimalkan

/no_format_opt