/backward_compat Switch

Der Schalter /backward_compat weist den MIDL-Compiler an, einige erweiterte Features beim Generieren von RPC/COM-Stubs zu deaktivieren.

midl /backward_compat { maybenull_sizeis | zeroout_alignmentgap | 
     BSTR_byvalue_escaping | string_defaultvalue | signed_wchar_t }

Optionen wechseln

maybenull_sizeis

Wendet das [disable_consistency_check]- Attribut auf eine gesamte MIDL-Kompilierung an.

zeroout_alignmentgap

Deaktiviert das Nullen von Lücken im gemarshallten Puffer.

BSTR_byvalue_escaping

Weist den MIDL-Compiler an, Escapesequenzen wie †̃\n††™ oder †̃\t†™ in BSTRs zu berücksichtigen.

string_defaultvalue

Erzwingt, dass der MIDL-Compiler Zeichenfolgen in [defaultvalue] -Attributen in VARIANT umfasst. VT_I4 Typ, bevor Sie den Wert in den richtigen Typ umwandeln.

signed_wchar_t

Weist MIDL an, den wchar_t-Typ aus Gründen der Kompatibilität mit Visual Basic als signiert zu behandeln.

Bemerkungen

  • maybenull_sizeis: Siehe [disable_consistency_check].

  • zeroout_alignmentgap: Wenn IDLs mit â€"target NT60 oder höher kompiliert werden, erstellt MIDL Stubs, die alle Ausrichtungslücken zwischen Elementen oder einer Struktur im Drahtpuffer auf null setzen. Der Befehlszeilenschalter /backward_compat zeroout_alignmentgap weist MIDL an, dieses Feature zu deaktivieren.

    In der folgenden Beispielstruktur enthält der Drahtpuffer eine Ausrichtungslücke von 7 Byte, um den Hypermember nach dem char-Element an 8 auszurichten. Mit â€"-Ziel NT60 oder höher löst MIDL diese Lücke auf, es sei denn, der Switch wird verwendet.

    IDL-Datei:

    typedef struct _structwithgaps{
        char c;
        // 7 byte gap to align the following hyper to 8 
        hyper h;
    } structwithgap;
    

    Dieser Wechsel kann eine leichte Leistungsverbesserung mit potenziell erheblichen Erhöhungen des Offenlegungsrisikos bieten.

  • BSTR_byvalue_escaping: Standardmäßig verarbeitet der MIDL-Compiler keine Escapesequenzen wie †̃\n††™ oder †̃\t†™ in Zeichenfolgenkonstanten für OLE-Automatisierung, wenn eine Zeichenfolgenkonstante in Typen VT_LPSTR oder VT_LPWSTR konvertiert wird. Mit dieser Abwärtskompatibilitätsoption werden die Escapesequenzen ausgewertet.

  • string_defaultvalue: Erzwingt, dass der MIDL-Compiler numerische Zeichenfolgen in [defaultvalue] -Attributen in VARIANT umfasst. VT_I4 Typ, bevor Sie den Wert in den richtigen Typ umwandeln. Dies kann in einigen Fällen zu Genauigkeitsverlusten führen, sodass diese Option nicht empfohlen wird.

  • signed_wchar_t: Weist MIDL an, den wchar_t-Typ aus Gründen der Kompatibilität mit Visual Basic als signiert zu behandeln.