Поделиться через


Переключатель /backward_compat

Параметр /backward_compat указывает компилятору MIDL отключить некоторые дополнительные функции при создании заглушки RPC/COM.

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

Параметры переключения

maybenull_sizeis

Применяет атрибут [disable_consistency_check] ко всей компиляции MIDL.

zeroout_alignmentgap

Отключает обнуление пробелов в маршализованном буфере.

BSTR_byvalue_escaping

Указывает компилятору MIDL учитывать escape-последовательности, такие как †̃\n†™ или â € ̃\t†™ в BSTR.

string_defaultvalue

Заставляет компилятор MIDL принудить строки в атрибутах [defaultvalue] к VARIANT. VT_I4 тип, прежде чем вводить значение в правильный тип.

signed_wchar_t

Направляет MIDL для обработки типа wchar_t как подписанного для совместимости с Visual Basic.

Комментарии

  • maybenull_sizeis: см. [disable_consistency_check].

  • zeroout_alignmentgap. Если idls компилируются с помощью целевого nt60 или более поздней версии, MIDL создает заглушки, которые обнуляют все пробелы в выравнивании между элементами или структурой в буфере провода. Параметр командной строки /backward_compat zeroout_alignmentgap перенаправит MIDL на отключение этой функции.

    В следующем примере структуры буфер провода содержит 7-байтовый интервал выравнивания для выравнивания гипер-члена до 8 после элемента char. При использовании целевого nt60 или более высокого уровня MIDL обнуляет этот разрыв, если не используется переключатель.

    IDL-файл:

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

    Этот параметр может обеспечить небольшое повышение производительности при потенциально значительном увеличении риска раскрытия информации.

  • BSTR_byvalue_escaping. По умолчанию компилятор MIDL не обрабатывает escape-последовательности, такие как †̃\n†™ или †̃\t†™ в строковых констант для OLE-автоматизации, при преобразовании строковой константы в типы VT_LPSTR или VT_LPWSTR. При использовании этого параметра обратной совместимости оцениваются escape-последовательности.

  • string_defaultvalue. Принуждает компилятор MIDL принудить числовые строки в атрибутах [defaultvalue] в VARIANT. VT_I4 тип, прежде чем вводить значение в правильный тип. В некоторых случаях это может привести к потере точности, поэтому этот параметр переключения не рекомендуется.

  • signed_wchar_t: направляет MIDL для обработки типа wchar_t как подписанного для совместимости с Visual Basic.