/backward_compat Switch
Przełącznik /backward_compat kieruje kompilator MIDL, aby wyłączyć niektóre zaawansowane funkcje podczas generowania wycinków RPC/COM.
midl /backward_compat { maybenull_sizeis | zeroout_alignmentgap |
BSTR_byvalue_escaping | string_defaultvalue | signed_wchar_t }
Opcje przełącznika
maybenull_sizeis
- Stosuje atrybut [disable_consistency_check] do całej kompilacji MIDL.
zeroout_alignmentgap
- Wyłącza wyzerowanie luk w buforze marshaled.
BSTR_byvalue_escaping
- Kieruje kompilator MIDL do honorowania sekwencji ucieczki, takich jak â € ̃\nâ € ™ lub â € ̃\tâ € ™ w BSTRs.
string_defaultvalue
- Wymusza, aby kompilator MIDL przekształcał ciągi w [defaultvalue] atrybutów w wariant. VT_I4 typ przed wprowadzeniem wartości do poprawnego typu.
signed_wchar_t
- Polecenie MIDL traktuje typ wchar_t jako podpisany w celu zachowania zgodności z językiem Visual Basic.
Uwagi
maybenull_sizeis: zobacz [disable_consistency_check].
zeroout_alignmentgap: gdy identyfikatory są kompilowane z â € "docelowy NT60 lub nowszy, MIDL utworzy wycinki, które zerują wszelkie luki wyrównania między elementami członkowskimi lub strukturą w buforze przewodu. Przełącznik wiersza polecenia /backward_compat zeroout_alignmentgap kieruje MIDL, aby wyłączyć tę funkcję.
W poniższej przykładowej strukturze bufor przewodowy zawiera 7-bajtową lukę wyrównania, aby wyrównać hiperelementy członkowskie do 8 po elemencie char. Z â € "docelowy NT60 lub wyższy, MIDL zeruje tę lukę, chyba że przełącznik jest używany.
Plik IDL:
typedef struct _structwithgaps{ char c; // 7 byte gap to align the following hyper to 8 hyper h; } structwithgap;
Ten przełącznik może zapewnić niewielką poprawę wydajności z potencjalnie znaczącym wzrostem ryzyka ujawnienia.
BSTR_byvalue_escaping: Domyślnie kompilator MIDL nie przetwarza sekwencji ucieczki, takich jak â € ̃\nâ € ™ lub â € ̃\tâ € ™ w stałe ciągów dla automatyzacji OLE podczas konwertowania stałej ciągu na typy VT_LPSTR lub VT_LPWSTR. W przypadku tej opcji przełącznika zgodności z poprzednimi wersjami sekwencje ucieczki są oceniane.
string_defaultvalue: Wymusza kompilator MIDL na łączenie ciągów liczbowych w [defaultvalue] atrybutów z wariantem. VT_I4 typ przed wprowadzeniem wartości do poprawnego typu. Może to prowadzić do utraty dokładności w niektórych przypadkach, więc ta opcja przełącznika nie jest zalecana.
signed_wchar_t: przekierowuje MIDL do traktowania typu wchar_t jako podpisanego w celu zachowania zgodności z językiem Visual Basic.