/Oi-växel

Växlarna /Oi och /Oic dirigerar MIDL-kompilatorn till att använda en fullständigt tolkad marshaling-metod. /Oicf-växeln ger ytterligare prestandaförbättringar.

midl /{Oi | Oic | Oif | Oicf}

Växla alternativ

Oi

Anger den fullständigt tolkade metoden för att konvertera stub-kod som skickas mellan klient och server.

Anmärkning

Den här växeln är föråldrad. Vi rekommenderar att /Oicf-växeln används i dess ställe.

 

Oic

Anger den kodlösa proxymetoden för marshaling som innehåller alla funktioner i /Oi och minskar även storleken på klientens stub-kod för objektgränssnitt.

Anmärkning

Den här växeln är föråldrad. Vi rekommenderar att /Oicf-växeln används i dess ställe.

 

Oif eller Oicf

Anger den kodlösa proxymetoden för marshaling som innehåller alla funktioner som tillhandahålls av /Oi och /Oic , men använder en ny tolk (snabba formatsträngar) som ger bättre prestanda än /Oi eller /Oic. Den här växeln innehåller de senaste RPC-förbättringarna och rekommenderas för moderna RPC-scenarier.

Anmärkningar

Observera begränsningarna för stödplattformar.

MIDL 3.0-kompilatorn innehåller två metoder för att konvertera kod: fullständigt tolkad ( /Oi, /Oic och /Oicf) och blandat läge ( /Os). Från och med MIDL version 6.0.359 genererar MIDL-kompilatorn /Oicf/robusta stubs som standard. Vissa språkfunktioner stöds inte i vissa lägen. I det här fallet växlar kompilatorn automatiskt till lämpligt läge och utfärdar en varning.

Om prestanda är ett problem kan metoden mixed-mode ( /Os) vara den bästa metoden. I det här läget väljer kompilatorn att konvertera vissa parametrar infogade i de genererade måtten. Även om detta resulterar i större stub-storlek, ger det ökad prestanda.

Den fullständigt tolkade metoden konverterar data helt offline. Detta minskar stub-kodens storlek avsevärt, men ger sämre prestanda. Med den fullständigt tolkade metoden finns det dessutom en gräns på 16 parametrar för varje procedur. Alla procedurer som innehåller fler än 16 parametrar bearbetas automatiskt i /Os-läge . Bland de tolkade lägena erbjuder /Oicf bästa prestanda och /Oi erbjuder bästa bakåtkompatibilitet.

Du kanske vill använda alternativet /Oif om programmet använder MIDL-funktioner som introducerades med MIDL 3.0, till exempel attributen [wire_marshal] och [user_marshal]. Om ditt program använder pipes måste du använda alternativet /Oif ; Om du anger ett annat läge växlar MIDL-kompilatorn till /Oif.

För att finjustera hur din stub-kod konverteras tillhandahåller Microsoft RPC ett ACF-attribut [optimize]. Det här attributet används som ett gränssnittsattribut eller åtgärdsattribut för att välja marskalkningsläge för enskilda gränssnitt eller för enskilda åtgärder.

Samtalskonventioner

Stubs som genererats av MIDL-kompilatorn i den tolkade metoden med hjälp av växlarna /Oi, /Oic eller /Oif måste kompileras som antingen ett stdcall eller en cdecl-procedur under C-kompileringen. En PASCAL- eller Fastcall-samtalskonvention fungerar inte. Dessutom måste serverns stub kompileras som stdcall.

Exempel

midl /Oi filename.idl

midl /Oic filename.idl

midl /Oif filename.idl

Se även

/Robust

/no_robust

Allmän MIDL-kommandoradssyntax

/Os

Optimera

/no_format_opt