Partager via


Commutateur /Oi

Les commutateurs /Oi et /Oic dirigent le compilateur MIDL à utiliser une méthode de marshaling entièrement interprétée. Le commutateur /Oicf offre des améliorations supplémentaires en matière de performances.

midl /{Oi | Oic | Oif | Oicf}

Options de basculement

Oi

Spécifie la méthode entièrement interprétée pour marshaler le code stub passé entre le client et le serveur.

Notes

Ce commutateur est obsolète. Il est recommandé d’utiliser le commutateur /Oicf à sa place.

 

Oci

Spécifie la méthode de marshaling proxy sans code qui fournit toutes les fonctionnalités de /Oi et réduit également la taille du code stub client pour les interfaces objet.

Notes

Ce commutateur est obsolète. Il est recommandé d’utiliser le commutateur /Oicf à sa place.

 

Oif ou Oicf

Spécifie la méthode de marshaling de proxy sans code qui inclut toutes les fonctionnalités fournies par /Oi et /Oic , mais utilise un nouvel interpréteur (chaînes de format rapide) qui fournit de meilleures performances que /Oi ou /Oic. Ce commutateur inclut des améliorations rpc récentes et est recommandé pour les scénarios RPC modernes.

Notes

Notez les restrictions liées à la prise en charge des plateformes.

Le compilateur MIDL 3.0 fournit deux méthodes pour marshaler le code : entièrement interprété ( /Oi, /Oic et /Oicf) et en mode mixte ( /Os). À compter de MIDL version 6.0.359, le compilateur MIDL génère des stubs /Oicf /robust par défaut. Certaines fonctionnalités de langage ne sont pas prises en charge dans certains modes. Dans ce cas, le compilateur passe automatiquement au mode approprié et émet un avertissement.

Si les performances sont un problème, la méthode en mode mixte ( /Os) peut être la meilleure approche. Dans ce mode, le compilateur choisit de marshaler certains paramètres inline dans les stubs générés. Bien que cela entraîne une plus grande taille de stub, il offre des performances accrues.

La méthode entièrement interprétée marshale les données complètement hors connexion. Cela réduit considérablement la taille du code stub, mais entraîne une baisse des performances. En outre, avec la méthode entièrement interprétée, il existe une limite de 16 paramètres pour chaque procédure. Toute procédure contenant plus de 16 paramètres est automatiquement traitée en mode /Os . Parmi les modes interprétés, /Oicf offre les meilleures performances et /Oi offre la meilleure compatibilité descendante.

Vous pouvez utiliser l’option /Oif si votre application utilise des fonctionnalités MIDL introduites avec MIDL 3.0, telles que les attributs [wire_marshal] et [user_marshal]. Si votre application utilise des canaux , vous devez utiliser l’option /Oif ; si vous spécifiez un autre mode, le compilateur MIDL bascule vers /Oif.

Pour affiner la façon dont votre code stub est marshalé, Microsoft RPC fournit un attribut ACF [optimiser]. Cet attribut est utilisé comme attribut d’interface ou d’opération pour sélectionner le mode de marshaling pour des interfaces individuelles ou pour des opérations individuelles.

Conventions d’appel

Les stubs générés par le compilateur MIDL dans la méthode interprétée à l’aide des commutateurs /Oi, /Oic ou /Oif doivent être compilés en tant que stdcall ou procédure cdecl pendant la compilation C. Une convention d’appel PASCAL ou Fastcall ne fonctionne pas. En outre, le stub du serveur doit être compilé en tant que stdcall.

Exemples

midl /Oi filename.idl

midl /Oic filename.idl

midl /Oif filename.idl

Voir aussi

/Robuste

/no_robust

Syntaxe de ligne de commande MIDL générale

/Os

Optimiser

/no_format_opt