/osf switch

/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 オプション)。
  • クライアント上の静的コールバック関数。
  • 非同期属性。
  • cpp_quote#pragma midl_echo
  • ワイド文字の型、定数、および文字列をwchar_tします。
  • enum 初期化 (スパース列挙子)。
  • アウトのみのサイズ仕様です。
  • サイズが混在したポインターとサイズの大きさの配列。
  • サイズ指定子と識別子指定子に使用される式。
  • 引数リスト内の任意の位置にある明示的なハンドル パラメーター。 /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、__export、export__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 メモリ管理パッケージ