次の方法で共有


/osf スイッチ

/osf スイッチは、OSF DCE との厳密な互換性を強制します。

midl /osf

スイッチ オプション

このスイッチにはパラメーターがありません。

解説

移植性の理由から、アプリケーションで OSF DCE との厳密な互換性が必要な場合は、このスイッチを使用します。

/osf モードでは、完全なポインターを使用する場合、引数にメモリ割り当てが必要な場合、または enable_allocate 属性を使用すると、RpcSs パッケージが自動的有効になります。 つまり、クライアントおよびサーバー アプリケーションで midl_user_allocate 関数と midl_user_free 関数を指定する必要はありません。

/osf スイッチを使用してコンパイルする場合、次の Microsoft 拡張機能は使用できません。

  • IDL ファイル内の抽象宣言子 (名前のないパラメーター)。
  • COM オブジェクトのインターフェイス定義。
  • 17 文字を超えるインターフェイス名。
  • wire_marshaluser_marshal、typelib (ODL) 拡張機能などの MIDL 専用属性。
  • IDL ファイルでの ACF キーワードの使用 (MIDL /app_config オプション)。
  • クライアント上の静的コールバック関数。
  • async 属性。
  • cpp_quote#pragma midl_echo
  • ワイド文字 型、定数、および文字列をwchar_tします。
  • 列挙型の 初期化 (スパース列挙子)。
  • out-only size 仕様。
  • サイズ変更されたポインターとサイズの大きさの配列が混在しています。
  • サイズ指定子と識別子指定子に使用される式。
  • 引数リスト内の任意の位置にある明示的なハンドル パラメーター。 /osf モードでは、MIDL コンパイラは明示的なバインド ハンドルを最初のパラメーターとして検索します。 最初のパラメーターがバインド ハンドルではなく、1 つ以上のコンテキスト ハンドルが指定されている場合、左端のコンテキスト ハンドルがバインド ハンドルとして使用されます。 最初のパラメーターがハンドルではなく、コンテキスト ハンドルがない場合、プロシージャは ACF 属性 implicit_handleまたはauto_handle を使用して暗黙的なバインディング 使用します。
  • ポインター属性の型の継承。 OSF DCE では、属性が設定されていないポインターは許可されません。 したがって、 /osf モードでは、各 IDL ファイルでポインターの属性を定義する必要があります。 ポインターに明示的な属性がない場合、IDL ファイルにはポインター型を設定するための pointer_default 仕様が必要です。
  • IDL ファイル内の複数のインターフェイス。
  • インターフェイス ブロックの外部の定義。
  • farstdcall などの型修飾子。
  • 方向属性の省略。

/osf スイッチを使用してコンパイルする場合、次の C/C++ 言語拡張機能は使用できません。

  • 構造体と共用体のビット フィールド。
  • 2 つのスラッシュ文字 (//) で区切られた 1 行のコメント。
  • 外部宣言。
  • パラメーター リストに省略記号を含むプロシージャ。
  • 「int」と入力します。
  • void * と入力します (context_handle属性を除く)。
  • ANSI 準拠プレフィックスを持つフォームを含む型修飾子には、 __cdeclcdeclconstconst__exportexport__farfar__loaddsloadds__nearnear__pascalpascal__stdcallstdcall__volatilevolatile の 2 つのアンダースコア文字が含まれます。
  • 任意の # プラグマ 警告または #pragma コメント。
  • 型のシリアル化。
  • __int3264データ型。
  • /protocol スイッチと ndr64 転送構文。

midl /osf filename.idl

midl /osf /app_config filename.idl

関連項目

一般的な MIDL コマンド ライン構文

/app_config

/ms_ext

Rpcss メモリ管理パッケージ