/backward_compat Interruptor

A opção /backward_compat direciona o compilador MIDL para desativar alguns recursos avançados ao gerar stubs RPC/COM.

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

Opções de comutação

maybenull_sizeis

Aplica o atributo [disable_consistency_check] a uma compilação MIDL inteira.

zeroout_alignmentgap

Desativa a eliminação de lacunas no buffer empacotado.

BSTR_byvalue_escaping

Orienta o compilador MIDL a respeitar sequências de escape como '\n' ou '\t' em BSTRs.

string_defaultvalue

Força o compilador MIDL a coagir cadeias de caracteres em atributos de [defaultvalue] em VARIANT. VT_I4 digite antes de coagir o valor para o tipo correto.

signed_wchar_t

Orienta o MIDL a tratar o tipo de wchar_t como assinado para compatibilidade com Visual Basic.

Comentários

  • maybenull_sizeis: Ver [disable_consistency_check].

  • zeroout_alignmentgap: Quando os IDLs são compilados com --target NT60 ou superior, o MIDL criará stubs que anulam quaisquer lacunas de alinhamento entre membros ou uma estrutura no buffer de fio. A opção de linha de comando /backward_compat zeroout_alignmentgap direciona o MIDL para desativar esse recurso.

    No exemplo de estrutura a seguir, o buffer de fio contém uma lacuna de alinhamento de 7 bytes para alinhar o hipermembro a 8 após o membro char. Com --alvo NT60 ou superior, o MIDL zera essa distância a menos que o interruptor seja usado.

    Arquivo IDL:

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

    Esta mudança pode proporcionar uma ligeira melhoria de desempenho com aumentos potencialmente significativos no risco de divulgação.

  • BSTR_byvalue_escaping: Por defeito, o compilador MIDL não processa sequências de escape como '\n' ou '\t' em constantes de cadeia para Automação OLE ao converter uma constante de cadeia para tipos VT_LPSTR ou VT_LPWSTR. Com esta opção de opção de compatibilidade com versões anteriores, as sequências de escape são avaliadas.

  • string_defaultvalue: Força o compilador MIDL a coagir cadeias numéricas em atributos de [defaultvalue] em VARIANT. VT_I4 digite antes de coagir o valor para o tipo correto. Isto pode levar à perda de precisão em alguns casos, pelo que esta opção de comutação não é recomendada.

  • signed_wchar_t: Orienta o MIDL a tratar o tipo de wchar_t como assinado para compatibilidade com Visual Basic.