Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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