Delen via


/backward_compat Switch

Met de /backward_compat-switch wordt de MIDL-compiler om enkele geavanceerde functies uit te schakelen bij het genereren van RPC/COM-stubs.

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

Schakelen tussen opties

maybenull_sizeis

De [disable_consistency_check] kenmerk wordt toegepast op een volledige MIDL-compilatie.

zeroout_alignmentgap

Hiermee worden hiaten in de marshaled buffer uitgeschakeld.

BSTR_byvalue_escaping

Hiermee wordt de MIDL-compiler om escapereeksen te honoreren, zoals †̃\n†™ of †̃\t†™ in BSTR's.

string_defaultvalue

Dwingt de MIDL-compiler om tekenreeksen te dwingen in [defaultvalue] kenmerken in VARIANT. VT_I4 type voordat u de waarde naar het juiste type afdringt.

signed_wchar_t

Hiermee wordt MIDL om het wchar_t type te behandelen als ondertekend voor compatibiliteit met Visual Basic.

Opmerkingen

  • maybenull_sizeis: Zie [disable_consistency_check].

  • zeroout_alignmentgap: wanneer ID's worden gecompileerd met doel NT60 of hoger, maakt MIDL stubs die uitlijningsgaten tussen leden of een structuur in de draadbuffer weghalen. Met de opdrachtregelschakelaar /backward_compat zeroout_alignmentgap wordt MIDL omgeschakeld om deze functie uit te schakelen.

    In de volgende voorbeeldstructuur bevat de draadbuffer een uitlijningsruimte van 7 byte om het hyperlid uit te lijnen op 8 na het tekenlid. Met â€"doel NT60 of hoger zal MIDL die tussenruimte uit nul halen, tenzij de switch wordt gebruikt.

    IDL-bestand:

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

    Deze switch kan een lichte prestatieverbetering bieden met mogelijk aanzienlijke toenamen van het openbaarmakingsrisico.

  • BSTR_byvalue_escaping: de MIDL-compiler verwerkt standaard geen escapereeksen zoals †̃\n†™ of †̃\t†™ in tekenreeksconstanten voor OLE Automation bij het converteren van een tekenreeksconstante naar typen VT_LPSTR of VT_LPWSTR. Met deze optie voor achterwaartse compatibiliteitsswitch worden de escapereeksen geëvalueerd.

  • string_defaultvalue: dwingt de MIDL-compiler om numerieke tekenreeksen te dwingen in [defaultvalue] kenmerken in VARIANT. VT_I4 type voordat u de waarde naar het juiste type afdringt. Dit kan in sommige gevallen leiden tot verlies van precisie, dus deze schakeloptie wordt niet aanbevolen.

  • signed_wchar_t: hiermee wordt MIDL om het wchar_t type te behandelen als ondertekend voor compatibiliteit met Visual Basic.