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.