Параметр /osf

Параметр /osf обеспечивает строгую совместимость с OSF DCE.

midl /osf

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

Этот параметр не имеет параметров.

Комментарии

Используйте этот параметр, если приложению требуется строгая совместимость с OSF DCE по причинам переносимости.

В режиме /osf пакет RpcSs автоматически включается при использовании полных указателей, аргументов, требующих выделения памяти, или при использовании атрибута enable_allocate . Это означает, что вам не нужно предоставлять функции midl_user_allocate и midl_user_free в клиентском и серверном приложении.

Следующие расширенные возможности Майкрософт недоступны при компиляции с параметром /osf :

  • Абстрактные деклараторы (неименованные параметры) в IDL-файле.
  • Определения интерфейсов для COM-объектов.
  • Имена интерфейсов с более чем 17 символами.
  • Атрибуты только MIDL, такие как wire_marshal, user_marshal и расширения typelib (ODL).
  • Использование ключевых слов ACF в IDL-файле (параметр MIDL /app_config ).
  • Статические функции обратного вызова на клиенте.
  • Асинхронный атрибут.
  • cpp_quote и #pragma midl_echo.
  • wchar_t расширенные типы символов, константы и строки.
  • инициализация перечисления (разреженные перечислители).
  • спецификация размера только для out-only.
  • Смешанные указатели и массивы размеров.
  • Выражения, используемые для описателей размера и дискриминатора.
  • Явный дескриптор параметров в любой позиции в списке аргументов. В режиме /osf компилятор MIDL ищет явный дескриптор привязки в качестве первого параметра. Если первый параметр не является дескриптором привязки и указан один или несколько дескрипторов контекста, в качестве дескриптора привязки используется крайний левый дескриптор контекста. Если первый параметр не является дескриптором и нет дескрипторов контекста, процедура использует неявную привязку с помощью атрибута ACF implicit_handle или auto_handle.
  • Наследование типа атрибута указателя. OSF DCE не допускает ненаписанные указатели. Поэтому в режиме /osf каждый IDL-файл должен определять атрибуты для своих указателей. Если какой-либо указатель не имеет явного атрибута, IDL-файл должен иметь спецификацию pointer_default , чтобы задать тип указателя.
  • Несколько интерфейсов в IDL-файле.
  • Определения за пределами блока интерфейса.
  • Квалификаторы типов, например far и stdcall.
  • Пропуск атрибутов направления.

Следующие расширения языка C/C++ недоступны при компиляции с параметром /osf :

  • Битовые поля в структурах и объединениях.
  • Однострочные комментарии, разделенные двумя символами косой черты (//).
  • Внешние объявления.
  • Процедуры с многоточием в списке параметров.
  • Введите int.
  • Тип void * (кроме атрибута context_handle ).
  • Квалификаторы типов, включая форму с префиксом ANSI, содержат два символа подчеркивания: __cdecl, cdecl, const, const, __export, export, __far, far, __loadds, loadds, __near, near, __pascal, pascal, __stdcall, stdcall, __volatile и volatile.
  • Любое предупреждение # pragma или #pragma комментарий.
  • Сериализация типов.
  • Тип данных __int3264 .
  • Параметр /protocol и синтаксис передачи ndr64.

Примеры

midl /osf filename.idl

midl /osf /app_config имя_файла.idl

См. также раздел

Общий синтаксис командной строки MIDL

/app_config

/ms_ext

Пакет управления памятью Rpcss