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