Modificador /osf

El modificador /osf fuerza una compatibilidad estricta con OSF DCE.

midl /osf

Opciones de modificador

Este modificador no tiene parámetros.

Observaciones

Use este modificador si la aplicación requiere una compatibilidad estricta con OSF DCE por motivos de portabilidad.

En el modo /osf , el paquete RpcSs se habilita automáticamente cuando se usan punteros completos, los argumentos requieren asignación de memoria o cuando se usa el atributo enable_allocate . Esto significa que no es necesario proporcionar las funciones de midl_user_allocate y midl_user_free en la aplicación cliente y servidor.

Las siguientes características extendidas por Microsoft no están disponibles al compilar con el modificador /osf :

  • Declaradores abstractos (parámetros sin nombre) en el archivo IDL.
  • Definiciones de interfaz para objetos COM.
  • Nombres de interfaz con más de 17 caracteres.
  • Atributos de solo MIDL, como wire_marshal, user_marshal y las extensiones typelib (ODL).
  • Uso de palabras clave ACF en un archivo IDL (la opción /app_config MIDL).
  • Funciones de devolución de llamada estáticas en el cliente.
  • Atributo asincrónico .
  • cpp_quote y #pragma midl_echo.
  • wchar_t tipos de caracteres anchos, constantes y cadenas.
  • inicialización de enumeración (enumeradores dispersos).
  • especificación de tamaño de solo salida.
  • Punteros de tamaño mixto y matrices de tamaño mixto.
  • Expresiones usadas para especificadores de tamaño y discriminador.
  • Parámetros de identificador explícitos en cualquier posición de la lista de argumentos. En el modo /osf , el compilador MIDL busca un identificador de enlace explícito como primer parámetro. Cuando el primer parámetro no es un identificador de enlace y se especifican uno o varios identificadores de contexto, el identificador de contexto más a la izquierda se usa como identificador de enlace. Cuando el primer parámetro no es un identificador y no hay ningún identificador de contexto, el procedimiento usa el enlace implícito mediante el atributo ACF implicit_handle o auto_handle.
  • Herencia de tipos de atributo de puntero. OSF DCE no permite punteros no distribuidos. Por lo tanto, en el modo /osf , cada archivo IDL debe definir atributos para sus punteros. Si algún puntero no tiene un atributo explícito, el archivo IDL debe tener una especificación de pointer_default para establecer el tipo de puntero.
  • Varias interfaces en un archivo IDL.
  • Definiciones fuera del bloque de interfaz.
  • Calificadores de tipo como far y stdcall.
  • Omitir atributos direccionales.

Las siguientes extensiones de lenguaje C/C++ no están disponibles al compilar con el modificador /osf :

  • Campos de bits en estructuras y uniones.
  • Comentarios de una sola línea delimitados con dos caracteres de barra diagonal (//).
  • Declaraciones externas.
  • Procedimientos con puntos suspensivos en la lista de parámetros.
  • Escriba int.
  • Escriba void * (excepto con el atributo context_handle ).
  • Los calificadores de tipo, incluido el formulario con el prefijo conforme a ANSI, contienen dos caracteres de subrayado: __cdecl, cdecl, const, const, __export, export, __far, far, __loadds, loadds, __near, near, __pascal, pascal, __stdcall, stdcall, __volatile y volatile.
  • Cualquier advertencia #pragma o #pragma comentario.
  • Serialización de tipos.
  • Tipo de datos __int3264 .
  • Modificador /protocol y sintaxis de transferencia ndr64.

Ejemplos

midl /osf filename.idl

midl /osf /app_config filename.idl

Vea también

Sintaxis general de la línea de comandos de MIDL

/app_config

/ms_ext

Paquete de administración de memoria rpcss