/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.