Share via


/error switch

El modificador /error determina los tipos de comprobación de errores que los códigos auxiliares generados realizarán en tiempo de ejecución.

Nota

Esta característica está obsoleta y ya no se admite. Se recomienda el uso del modificador /robust .

 

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

Opciones de modificador

Asignación

Comprueba si midl_user_allocate devuelve un valor NULL , lo que indica un error de memoria insuficiente.

stub_data

Genera un código auxiliar que detecta excepciones no coincidentes en el lado servidor y las propaga de nuevo al cliente.

Ref

Genera código que ejecuta una comprobación en tiempo de ejecución para asegurarse de que no se pasan punteros de referencia NULL a los códigos auxiliares de cliente y genera una excepción de RPC_X_NULL_REF_POINTER si encuentra alguno.

bounds_check

Comprueba el tamaño de matrices conformes y variables con respecto a la especificación de longitud de transmisión.

Ninguno

No realiza ninguna comprobación de errores.

todo

Realiza todas las comprobaciones de errores. Efectivo con MIDL versión 5.0, se trata de un modificador de compilador predeterminado.

Comentarios

El modificador /error selecciona el número de comprobaciones de errores que realizarán los archivos auxiliares generados. Efectivo con MIDL versión 5.0, la configuración predeterminada es /error all.

Los errores de enumeración que se comprueban (de forma predeterminada en todas las versiones de MIDL) son errores de truncamiento causados al convertir entre tipos de enumeración larga (enteros de 32 bits) y tipos de enumeración corta (la representación de datos de red de la enumeración) y el número de identificadores en una enumeración superior a 32 767.

La comprobación de errores de acceso a memoria (también de forma predeterminada en todas las versiones de MIDL) es para punteros que superan el final del búfer en el código de serialización y para matrices compatibles cuyo tamaño es menor que cero. Use la marca /error bounds_check para comprobar si hay otros límites de matriz no válidos.

Al especificar la asignación de /error, los códigos auxiliares incluyen código que genera una excepción cuando midl_user_allocate devuelve 0.

La opción /error stub_data impide que los datos del cliente bloqueen el servidor durante la desmarshaling, lo que proporciona de forma eficaz un método más sólido para controlar la operación de desacoplar.

Efectivo con Windows 2000, el motor de serialización NDR en tiempo de ejecución subyacente realiza la mayoría de estas comprobaciones. Esto significa que si usa uno de los modos totalmente interpretados (/Oi, /Oif) de generación de código auxiliar, elegir diferentes opciones de comprobación de errores no tendrá un efecto marcado en el rendimiento.

Ejemplos

midl /error allocation filename.idl

midl /error none filename.idl

Consulte también

Sintaxis general de la línea de comandos de MIDL

/Robusto