/backward_compat Switch
El modificador /backward_compat dirige al compilador MIDL para desactivar algunas características avanzadas al generar códigos auxiliares RPC/COM.
midl /backward_compat { maybenull_sizeis | zeroout_alignmentgap |
BSTR_byvalue_escaping | string_defaultvalue | signed_wchar_t }
Opciones de modificador
maybenull_sizeis
- Aplica el atributo [disable_consistency_check] a una compilación MIDL completa.
zeroout_alignmentgap
- Desactiva las brechas de cero en el búfer serializado.
BSTR_byvalue_escaping
- Dirige al compilador MIDL para que respete las secuencias de escape, como\n™ ™ .
string_defaultvalue
- Fuerza al compilador MIDL a coerce cadenas en [defaultvalue] atributos en VARIANT. VT_I4 tipo antes de convertir el valor en el tipo correcto.
signed_wchar_t
- Dirige MIDL para tratar el tipo de wchar_t como firmado para la compatibilidad con Visual Basic.
Observaciones
maybenull_sizeis: vea [disable_consistency_check].
zeroout_alignmentgap: cuando las IDL se compilan con nt60 de destino o superior, MIDL creará códigos auxiliares que ceroán las brechas de alineación entre los miembros o una estructura en el búfer de cables. El modificador de línea de comandos /backward_compat zeroout_alignmentgap dirige MIDL para deshabilitar esta característica.
En la estructura de ejemplo siguiente, el búfer de cables contiene un intervalo de alineación de 7 bytes para alinear el hiper miembro a 8 después del miembro char. Con el objetivo NT60 o superior, MIDL dejará cero esa brecha a menos que se use el modificador.
Archivo IDL:
typedef struct _structwithgaps{ char c; // 7 byte gap to align the following hyper to 8 hyper h; } structwithgap;
Este modificador puede proporcionar una ligera mejora del rendimiento con aumentos potencialmente significativos en el riesgo de divulgación.
BSTR_byvalue_escaping: de forma predeterminada, el compilador MIDL no procesa secuencias de escape como\n™ ™ en constantes de cadena para LA automatización OLE al convertir una constante de cadena en tipos VT_LPSTR o VT_LPWSTR. Con esta opción de modificador de compatibilidad con versiones anteriores, se evalúan las secuencias de escape.
string_defaultvalue: fuerza al compilador MIDL a coerce cadenas numéricas en [defaultvalue] atributos en VARIANT. VT_I4 tipo antes de convertir el valor en el tipo correcto. Esto puede provocar la pérdida de precisión en algunos casos, por lo que no se recomienda esta opción de conmutador.
signed_wchar_t: dirige MIDL para tratar el tipo de wchar_t como firmado para la compatibilidad con Visual Basic.