Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De switches /Oi en /Oic leiden de MIDL-compiler om een volledig geïnterpreteerde marshalingmethode te gebruiken. De /Oicf-switch biedt extra prestatieverbeteringen.
midl /{Oi | Oic | Oif | Oicf}
Schakelen tussen opties
-
Oi
-
Hiermee geeft u de volledig geïnterpreteerde methode voor marshaling stub-code doorgegeven tussen client en server.
Opmerking
Deze switch is verouderd. Het wordt aanbevolen om de /Oicf-switch op zijn plaats te gebruiken.
-
Oic
-
Hiermee geeft u de codeloze proxymethode van marshaling die alle functies van /Oi biedt en ook de grootte van de stub-code van de client voor objectinterfaces verder verkleint.
Opmerking
Deze switch is verouderd. Het wordt aanbevolen om de /Oicf-switch op zijn plaats te gebruiken.
-
Oif of Oicf
-
Hiermee geeft u de codeloze proxymethode van marshaling die alle functies bevat die worden geleverd door /Oi en /Oic , maar een nieuwe interpreter (snelle notatietekenreeksen) gebruikt die betere prestaties biedt dan /Oi of /Oic. Deze switch bevat recente RPC-verbeteringen en wordt aanbevolen voor moderne RPC-scenario's.
Opmerkingen
Let op de beperkingen met betrekking tot ondersteunende platforms.
De MIDL 3.0-compiler biedt twee methoden voor marshaling-code: volledig geïnterpreteerd ( /Oi, /Oic en /Oicf) en mixed-mode ( /Os). Vanaf MIDL versie 6.0.359 genereert de MIDL-compiler standaard /Oicf/robuuste stubs. Sommige taalfuncties worden in sommige modi niet ondersteund. In dit geval schakelt de compiler automatisch over naar de juiste modus en geeft een waarschuwing uit.
Als de prestaties een probleem zijn, kan de methode mixed-mode ( /Os) de beste methode zijn. In deze modus kiest de compiler ervoor om bepaalde parameters inline te marshalen in de gegenereerde stubs. Hoewel dit resulteert in grotere stubgrootte, biedt het verbeterde prestaties.
De volledig geïnterpreteerde methode marshals gegevens volledig offline. Dit vermindert aanzienlijk de grootte van de stub-code, maar resulteert in verminderde prestaties. Met de volledig geïnterpreteerde methode is er ook een limiet van 16 parameters voor elke procedure. Elke procedure met meer dan 16 parameters wordt automatisch verwerkt in de /Os-modus . Onder de geïnterpreteerde modi biedt /Oicf de beste prestaties en /Oi biedt de beste compatibiliteit met eerdere versies.
U kunt de optie /Oif gebruiken als uw toepassing GEBRUIKMAAKT van MIDL-functies die zijn geïntroduceerd met MIDL 3.0, zoals de kenmerken [wire_marshal] en [user_marshal].. Als uw toepassing pijpen gebruikt, moet u de optie /Oif gebruiken; als u een andere modus opgeeft, schakelt de MIDL-compiler over naar /Oif.
Als u de manier wilt verfijnen waarop uw stub-code marshaled is, biedt Microsoft RPC een ACF-kenmerk [optimize]. Dit kenmerk wordt gebruikt als een interfacekenmerk of bewerkingskenmerk om de marshaling-modus te selecteren voor afzonderlijke interfaces of voor afzonderlijke bewerkingen.
Oproepconventies
Stubs die worden gegenereerd door de MIDL-compiler in de geïnterpreteerde methode met behulp van de /Oi-, /Oic- of /Oif-switches , moeten worden gecompileerd als een stdcall- of cdecl-procedure tijdens de C-compilatie. Een PASCAL- of Fastcall-oproepconventie werkt niet. Daarnaast moet de server-stub worden gecompileerd als stdcall.
Examples
midl /Oi bestandsnaam.idl
midl /Oic filename.idl
midl /Oif bestandsnaam.idl
Zie ook