Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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