Freigeben über


/Oi-Schalter

Die Schalter "/Oi " und "/Oic " leiten den MIDL-Compiler an, um eine vollständig interpretierte Marshaling-Methode zu verwenden. Der Schalter "/Oicf " bietet zusätzliche Leistungsverbesserungen.

midl /{Oi | Oic | Oif | Oicf}

Optionen wechseln

Oi

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

Hinweis

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

 

Oic

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

Hinweis

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

 

Oif oder Oicf

Gibt die codelose Proxymethode des Marshallings an, die alle von /Oi und /Oic bereitgestellten Funktionen enthält, verwendet jedoch einen neuen Interpreter (schnelle Formatzeichenfolgen), der eine bessere Leistung als /Oi oder /Oic bietet. Dieser Switch enthält aktuelle RPC-Verbesserungen 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 bietet zwei Methoden zum Marshalling von Code: vollständig interpretiert ( /Oi, /Oic und /Oicf) und gemischten Modus ( /Os). Ab MIDL Version 6.0.359 generiert der MIDL-Compiler standardmäßig /Oicf/robuste 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 darstellt, kann die Methode für gemischten Modus ( /Os) der beste Ansatz sein. In diesem Modus wählt der Compiler einige Parameter inline in den generierten Stubs marshallen. Dies führt zwar zu einer größeren Stubgröße, bietet jedoch eine höhere Leistung.

Die vollständig interpretierten Methoden marshallen Daten vollständig offline. Dies reduziert die Größe des Stubcodes erheblich, führt jedoch zu einer verringerten Leistung. 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 Rohre 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 gemarstet wird, stellt Microsoft RPC ein ACF -Attribut [optimize] bereit. Dieses Attribut wird als Schnittstellenattribute oder Operationsattribut verwendet, um den Marshaling-Modus 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