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


/backward_compat Switch

Переключатель /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†™ в BSTRs.

string_defaultvalue

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

signed_wchar_t

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

Замечания

  • maybenull_sizeis: см. [disable_consistency_check].

  • zeroout_alignmentgap. Если идентификаторы компилируются с помощью целевого 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.