Compartilhar via


Comutador /osf

A opção /osf força a compatibilidade estrita com o DCE do OSF.

midl /osf

Opções de Alternância

Essa opção não tem parâmetros.

Comentários

Use essa opção se o aplicativo exigir compatibilidade estrita com o OSF DCE por motivos de portabilidade.

No modo /osf , o pacote RpcSs é habilitado automaticamente quando você usa ponteiros completos, os argumentos exigem alocação de memória ou quando você usa o atributo enable_allocate . Isso significa que você não precisa fornecer as funções midl_user_allocate e midl_user_free em seu aplicativo cliente e servidor.

Os seguintes recursos estendidos pela Microsoft não estão disponíveis quando você compila com a opção /osf :

  • Declaradores abstratos (parâmetros não nomeados) no arquivo IDL.
  • Definições de interface para objetos COM.
  • Nomes de interface com mais de 17 caracteres.
  • Atributos somente MIDL, como wire_marshal, user_marshal e extensões de typelib (ODL).
  • Usando palavras-chave ACF em um arquivo IDL (a opção MIDL /app_config ).
  • Funções de retorno de chamada estáticas no cliente.
  • O atributo assíncrono .
  • cpp_quote e #pragma midl_echo.
  • wchar_t tipos, constantes e cadeias de caracteres largos.
  • inicialização de enumeração (enumeradores esparsos).
  • Especificação de tamanho somente out-only.
  • Ponteiros de tamanho misto e matrizes de tamanho.
  • Expressões usadas para especificadores de tamanho e discriminatórios.
  • Parâmetros de identificador explícitos em qualquer posição na lista de argumentos. No modo /osf , o compilador MIDL procura um identificador de associação explícito como o primeiro parâmetro. Quando o primeiro parâmetro não é um identificador de associação e um ou mais identificadores de contexto são especificados, o identificador de contexto mais à esquerda é usado como o identificador de associação. Quando o primeiro parâmetro não é um identificador e não há identificadores de contexto, o procedimento usa associação implícita usando o atributo ACF implicit_handle ou auto_handle.
  • Herança de tipo de atributo de ponteiro. O OSF DCE não permite ponteiros não atribuídos. Portanto, no modo /osf , cada arquivo IDL deve definir atributos para seus ponteiros. Se qualquer ponteiro não tiver um atributo explícito, o arquivo IDL deverá ter uma especificação de pointer_default para definir o tipo de ponteiro.
  • Várias interfaces em um arquivo IDL.
  • Definições fora do bloco de interface.
  • Digite qualificadores como far e stdcall.
  • Omitindo atributos direcionais.

As seguintes extensões de linguagem C/C++ não estão disponíveis quando você compila com a opção /osf :

  • Campos de bits em estruturas e uniões.
  • Comentários de linha única delimitados com dois caracteres de barra (//).
  • Declarações externas.
  • Procedimentos com reticências na lista de parâmetros.
  • Digite int.
  • Tipo void * (exceto com o atributo context_handle ).
  • Os qualificadores de tipo, incluindo o formulário com o prefixo compatível com ANSI, contêm dois caracteres de sublinhado: __cdecl, cdecl, const, const, __export, export, __far, far, __loadds, loadds, __near, near, __pascal, pascal, __stdcall, stdcall, __volatile e volatile.
  • Qualquer aviso # pragma ou comentário #pragma .
  • Tipo de serialização.
  • O tipo de dados __int3264 .
  • A opção /protocol e a sintaxe de transferência ndr64.

Exemplos

midl /osf filename.idl

midl /osf /app_config filename.idl

Confira também

Sintaxe geral da linha de comando MIDL

/app_config

/ms_ext

Pacote de Gerenciamento de Memória Rpcss