Udostępnij za pośrednictwem


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