optimiser l’attribut
L’attribut [ optimize ] ACF est utilisé pour affiner le niveau de gradation pour le marshaling des données.
Notes
Ce mot clé est superceeded et ne doit pas être utilisé. Les compilations MIDL actuelles doivent utiliser /Oicf/Robust à la place.
optimize ("optimization-options")
Paramètres
-
optimisation-options
-
Spécifie la méthode de marshaling des données. Utilisez « s » pour le marshaling en mode mixte ou « i » pour le marshaling interprété.
Notes
Cette version de RPC fournit deux méthodes pour le marshaling des données : mode mixte (« s ») et interprété (« i »). Ces méthodes correspondent aux commutateurs de ligne de commande /OS et /OI . La méthode interprétée marshale les données complètement hors connexion. Bien que cela puisse réduire considérablement la taille du stub, les performances peuvent être affectées.
Si les performances posent un problème, la méthode en mode mixte peut être la meilleure approche. Le mode mixte permet au compilateur MIDL d’effectuer la détermination entre les données qui seront marshalées en ligne et qui seront marshalées par un appel à une bibliothèque de liens dynamiques hors connexion. Si de nombreuses procédures utilisent les mêmes types de données, une procédure unique peut être appelée à plusieurs reprises pour marshaler les données. De cette façon, les données les plus adaptées au marshaling en ligne sont traitées en ligne, tandis que les autres données peuvent être marshalées plus efficacement en mode hors connexion.
Notez que l’attribut [ optimize ] peut être utilisé en tant qu’attribut d’interface ou en tant qu’attribut d’opération. S’il est utilisé comme attribut d’interface, il définit la valeur par défaut pour l’interface entière, en remplaçant les commutateurs de ligne de commande. Toutefois, si elle est utilisée en tant qu’attribut d’opération, elle affecte uniquement cette opération, en remplaçant les commutateurs de ligne de commande et l’interface par défaut.
Exemples
optimize ("s") HRESULT FasterProcedure(...);
optimize ("i") HRESULT SmallerProcedure(...);