/error switch

Le commutateur /error détermine les types de vérification des erreurs que les stubs générés effectueront au moment de l’exécution.

Notes

Cette fonctionnalité est obsolète et n’est plus prise en charge. L’utilisation du commutateur /robust est recommandée.

 

midl /error { allocation | stub_data | ref | bounds_check | none | all }

Options de commutateur

Allocation

Vérifie si midl_user_allocate retourne une valeur NULL , indiquant une erreur de mémoire insuffisante.

stub_data

Génère un stub qui intercepte les exceptions nonmarshalantes côté serveur et les propage au client.

Ref

Génère du code qui exécute une case activée au moment de l’exécution pour s’assurer qu’aucun pointeur de référence NULL n’est passé aux stubs du client et déclenche une exception RPC_X_NULL_REF_POINTER s’il en trouve.

bounds_check

Vérifie la taille des tableaux conformes et variables par rapport à la spécification de longueur de transmission.

Aucun

N’effectue aucune vérification des erreurs.

Tous

Effectue toutes les vérifications des erreurs. En vigueur avec MIDL version 5.0, il s’agit d’un commutateur de compilateur par défaut.

Notes

Le commutateur /error sélectionne le nombre de vérifications d’erreur effectuées par les fichiers stub générés. À compter de MIDL version 5.0, le paramètre par défaut est /error all.

Les erreurs d’énumération vérifiées (par défaut dans toutes les versions de MIDL) sont des erreurs de troncation provoquées lors de la conversion entre les types d’énumération longs (entiers 32 bits) et les types d’énumérations courtes (représentation des données réseau de l’énumération) et le nombre d’identificateurs dans une énumération dépassant 32 767.

La vérification des erreurs d’accès à la mémoire (également par défaut dans toutes les versions de MIDL) concerne les pointeurs qui dépassent la fin de la mémoire tampon dans le code de marshaling et pour les tableaux conformes dont la taille est inférieure à zéro. Utilisez l’indicateur /error bounds_check pour case activée pour d’autres limites de tableau non valides.

Lorsque vous spécifiez l’allocation /error, les stubs incluent le code qui déclenche une exception lorsque midl_user_allocate retourne 0.

L’option /error stub_data empêche les données client de bloquer le serveur pendant la démarshalation, ce qui fournit une méthode plus robuste de gestion de l’opération de démarshalation.

À compter de Windows 2000, le moteur de marshaling NDR d’exécution sous-jacent effectue la plupart de ces vérifications. Cela signifie que si vous utilisez l’un des modes entièrement interprétés (/Oi, /Oif) de génération de stub, le choix de différentes options de vérification des erreurs n’aura pas d’effet marqué sur les performances.

Exemples

midl /error allocation filename.idl

midl /error none filename.idl

Voir aussi

Syntaxe de ligne de commande MIDL générale

/Robuste