Freigeben über


/Oi-Schalter

Die Schalter /Oi und /Oic weisen den MIDL-Compiler an, eine vollständig interpretierte Marshallingmethode zu verwenden. Der Schalter /Oicf bietet zusätzliche Leistungsverbesserungen.

midl /{Oi | Oic | Oif | Oicf}

Optionen wechseln

Oi

Gibt die vollständig interpretierte Methode zum Marshalling von Stubcode an, der zwischen Client und Server übergeben wird.

Hinweis

Dieser Schalter ist veraltet. Es wird empfohlen, den Schalter /Oicf an seiner Stelle zu verwenden.

 

Oic

Gibt die codelose Proxymethode des Marshallings an, die alle Features von /Oi bereitstellt und außerdem die Größe des Clientstubcodes für Objektschnittstellen weiter reduziert.

Hinweis

Dieser Schalter ist veraltet. Es wird empfohlen, den Schalter /Oicf an seiner Stelle zu verwenden.

 

Oif oder Oicf

Gibt die codelose Proxymethode des Marshallings an, die alle von /Oi und /Oic bereitgestellten Features enthält, aber einen neuen Interpreter (schnelle Formatzeichenfolgen) verwendet, der eine bessere Leistung als /Oi oder /Oic bietet. Dieser Switch enthält aktuelle RPC-Erweiterungen und wird für moderne RPC-Szenarien empfohlen.

Bemerkungen

Beachten Sie die Einschränkungen im Zusammenhang mit unterstützenden Plattformen.

Der MIDL 3.0-Compiler stellt zwei Methoden zum Marshallen von Code bereit: vollständig interpretiert ( /Oi, /Oic und /Oicf) und gemischter Modus ( /Os). Ab MIDL Version 6.0.359 generiert der MIDL-Compiler standardmäßig /Oicfâ /robust Stubs. Einige Sprachfeatures werden in einigen Modi nicht unterstützt. In diesem Fall wechselt der Compiler automatisch in den entsprechenden Modus und gibt eine Warnung aus.

Wenn die Leistung ein Problem ist, kann die Methode im gemischten Modus ( /Os) der beste Ansatz sein. In diesem Modus wählt der Compiler aus, einige Parameter inline in den generierten Stubs zu marshallen. Dies führt zwar zu einer größeren Stubgröße, bietet aber eine höhere Leistung.

Die vollständig interpretierte Methode marshallt Daten vollständig offline. Dies reduziert die Größe des Stubcodes erheblich, führt jedoch zu einer Leistungsminderung. Außerdem gibt es bei der vollständig interpretierten Methode einen Grenzwert von 16 Parametern für jede Prozedur. Jede Prozedur, die mehr als 16 Parameter enthält, wird automatisch im /Os-Modus verarbeitet. Unter den interpretierten Modi bietet /Oicf die beste Leistung, und /Oi bietet die beste Abwärtskompatibilität.

Sie können die Option /Oif verwenden, wenn Ihre Anwendung MIDL-Features verwendet, die mit MIDL 3.0 eingeführt wurden, z. B. die Attribute [wire_marshal] und [user_marshal]. Wenn Ihre Anwendung Pipes verwendet, müssen Sie die Option /Oif verwenden. Wenn Sie einen anderen Modus angeben, wechselt der MIDL-Compiler zu /Oif.

Um die Art und Weise zu optimieren, wie Ihr Stubcode gemarshallt wird, stellt Microsoft RPC ein ACF-Attribut [optimize] bereit. Dieses Attribut wird als Schnittstellenattribute oder Vorgangsattribut verwendet, um den Marshallingmodus für einzelne Schnittstellen oder für einzelne Vorgänge auszuwählen.

Aufrufkonventionen

Stubs, die vom MIDL-Compiler in der interpretierten Methode mit den Schaltern /Oi, /Oic oder /Oif generiert werden, müssen während der C-Kompilierung entweder als stdcall- oder cdecl-Prozedur kompiliert werden. Eine PASCAL- oder Fastcall-Anrufkonvention funktioniert nicht. Darüber hinaus muss der Serverstub als stdcall kompiliert werden.

Beispiele

midl /Oi filename.idl

midl /Oic filename.idl

midl /Oif filename.idl

Siehe auch

/Robuste

/no_robust

Allgemeine MIDL-Befehlszeilensyntax

/Os

Optimieren

/no_format_opt