Comutador /backward_compat

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 opçã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 com marshaling.

BSTR_byvalue_escaping

Direciona o compilador MIDL para honrar sequências de escape como †̃\n†™ ou †̃\t†™ em BSTRs.

string_defaultvalue

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

signed_wchar_t

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

Comentários

  • maybenull_sizeis: consulte [disable_consistency_check].

  • zeroout_alignmentgap: quando as IDLs são compiladas com o destino NT60 ou superior, MIDL criará stubs que zeram 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 MIDL para desabilitar esse recurso.

    Na estrutura de exemplo a seguir, o buffer de fio contém uma lacuna de alinhamento de 7 bytes para alinhar o membro hyper a 8 após o membro char. Com o destino NT60 ou superior, MIDL zerá essa lacuna, a menos que a opção seja usada.

    Arquivo IDL:

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

    Essa opção pode fornecer uma pequena melhoria de desempenho com aumentos potencialmente significativos no risco de divulgação.

  • BSTR_byvalue_escaping: por padrão, o compilador MIDL não processa sequências de escape como †̃\n†™ ou †̃\t†™ em constantes de cadeia de caracteres para Automação OLE ao converter uma constante de cadeia de caracteres em tipos VT_LPSTR ou VT_LPWSTR. Com essa opção de comutador de compatibilidade com versões anteriores, as sequências de escape são avaliadas.

  • string_defaultvalue: força o compilador MIDL a forçar cadeias de caracteres numéricas em atributos [defaultvalue] para VARIANT. VT_I4 tipo antes de forçar o valor para o tipo correto. Isso pode levar à perda de precisão em alguns casos, portanto, essa opção de opção não é recomendada.

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