/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.