Commutateur /robust

Le commutateur /robust indique au compilateur MIDL de générer des informations supplémentaires de vérification des erreurs, que le moteur NDR utilise pour effectuer des vérifications d’intégrité au moment de l’exécution.

midl /robust {/Oicf | /Oif }

Options de commutateur

/Oicf

/Oif

Ces commutateurs sont identiques dans leurs fonctionnalités. Ils spécifient la méthode de proxy sans code de marshaling et utilisent des chaînes de format rapide pour améliorer les performances. Voir / Oi.

Notes

L’utilisation du commutateur /robust génère des informations supplémentaires qui permettent au moteur de représentation des données réseau (NDR) d’effectuer la vérification des erreurs d’exécution sur les arguments corrélés dans les tableaux dynamiques, les unions et les pointeurs d’interface sortant dans les applications DCOM. Le commutateur /robust est disponible uniquement sous Windows 2000 et versions ultérieures de Windows.

Un argument corrélé est un argument qui utilise l’un des attributs qui permettent de déterminer la taille d’un objet de données au moment de l’exécution : size_is, length_is, first_is, last_is, max_is, switch_is et iid_is. Conformément à la spécification OSF-DCE pour la représentation par fil, cet argument corrélé apparaît à deux emplacements différents. Par exemple, envisagez une utilisation classique de l’attribut size_is :

HRESULT Func1([in] long Size, 
              [in, size_is(Size)]BAR_TYPE *pBarType);

Dans cet exemple, le client passe un long qui spécifie la taille d’un bloc de BAR_TYPEs (en termes de nombre d’éléments BAR_TYPES) et un pointeur vers le bloc réel de BAR_TYPEs. L’argument Size est en corrélation avec l’argument pBarType. Conformément à la spécification OSF-DCE, l’argument Size est représenté deux fois sur le câble, d’abord comme lui-même, puis avec le tableau d’éléments BAR_TYPE qui représentent l’argument pBarType. Chaque argument n’est pas délimité indépendamment, selon sa propre représentation filaire. Normalement, l’argument Size et sa copie, qui est utilisée pour représenter une partie de l’autre argument, ont les mêmes valeurs. Toutefois, si l’argument Size devient endommagé (par exemple, lorsque le bloc de BAR_TYPES est supérieur à ce qui a été alloué), l’application serveur peut cesser de répondre, car elle utilise la valeur de l’argument Size pour mesurer les données entrantes.

Le commutateur /robust est requis pour implémenter la vérification de plage valide avec l’attribut de plage .

Exemples

midl /robust /Oicf filename.idl

Voir aussi

Syntaxe de ligne de commande MIDL générale

/Oi

Gamme