Share via


/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 secuencias de escape como €\n™ € o € ¦ ¦ ِ ِ ِ ِ ِ ¦ ™

string_defaultvalue

Fuerza al compilador MIDL a convertir cadenas en atributos [defaultvalue] 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 por 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 ceron 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 nt60 de destino o superior, MIDL dejará sin espacio 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, por ejemplo,\n™ o VT_LPWSTR o % ™ en constantes de cadena para OLE VT_LPSTR Automation. 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 convertir cadenas numéricas en atributos [defaultvalue] 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 modificador.

  • signed_wchar_t: dirige MIDL para tratar el tipo de wchar_t como firmado por compatibilidad con Visual Basic.