/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