/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.

Note

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 non délimitées côté serveur et les propage au client.

Ref

Génère du code qui exécute une vérification au moment de l’exécution pour vous assurer qu’aucun pointeur de référence NULL n’est passé aux stubs clients et déclenche une exception RPC_X_NULL_REF_POINTER si elle en trouve.

bounds_check

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

Aucun

N’effectue aucune vérification des erreurs.

Tous

Effectue toute la vérification des erreurs. Effective avec MIDL version 5.0, il s’agit d’un commutateur de compilateur par défaut.

Remarques

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

Les erreurs d’énumération qui sont 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ération courts (représentation de 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 en 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 rechercher d’autres limites de tableau non valides.

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

L’option /error stub_data empêche les données clientes de bloquer le serveur pendant l’annulation de l’expiration, fournissant ainsi une méthode plus robuste de gestion de l’opération de démarshalation.

Effective avec Windows 2000, le moteur de marshaling de remise 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 des 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 également

Syntaxe générale de ligne de commande MIDL

/Robuste