Commutateur /Os
Le commutateur /Os spécifie la méthode en mode mixte pour marshaler le code stub passé entre le client et le serveur.
midl /Os
Ce commutateur n’a aucun paramètre.
Il existe des questions importantes à prendre en compte avant de décider de la méthode de marshaling du code. Ces problèmes concernent la taille et les performances. Le compilateur MIDL fournit deux méthodes de marshaling du code : mixed-mode (/Os) et entièrement interprété (/Oi). 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 également une baisse des performances.
Utilisez le mode midl par défaut /Oicf /robust à des fins autres que la compatibilité descendante. Ce mode est le mode standard sécurisé du compilateur MIDL ; tout autre mode ne doit être utilisé qu’après un examen attentif de l’implication de la sécurité, en réalisant que les extensions futures ne seront implémentées que pour le mode par défaut. En mode mixte, le compilateur marshale certains paramètres inline dans les stubs générés. Bien que cela entraîne une plus grande taille de stub, cela peut également offrir des performances accrues.
MIDL fournit une prise en charge complète des tableaux multidimensionnels et des pointeurs multidimensionnels uniquement en mode /Oicf . En mode /Os et /Oi , le compilateur prend en charge des cas simples, tels que les tableaux de taille fixe. L’utilisation de tableaux multidimensionnels en mode /Os ou /Oi peut entraîner des paramètres qui ne sont pas marshalés correctement. Microsoft vous recommande d’utiliser le commutateur de ligne de commande /Oicf lorsque votre interface définit des paramètres qui sont des tableaux multidimensionnels ou des pointeurs multidimensionnels.
Pour définir davantage le niveau de gradation dans la façon dont les données sont marshalées, cette version de RPC fournit un attribut [optimiser]. Cet attribut est utilisé comme attribut d’interface ACF ou attribut d’opération pour sélectionner le mode de marshaling.
midl /Os filename.idl