/osf スイッチ
/osf スイッチは、OSF DCE との厳密な互換性を強制します。
midl /osf
このスイッチにはパラメーターがありません。
移植性の理由から、アプリケーションで OSF DCE との厳密な互換性が必要な場合は、このスイッチを使用します。
/osf モードでは、完全なポインターを使用する場合、引数にメモリ割り当てが必要な場合、または enable_allocate 属性を使用すると、RpcSs パッケージが自動的に有効になります。 つまり、クライアントおよびサーバー アプリケーションで midl_user_allocate 関数と midl_user_free 関数を指定する必要はありません。
/osf スイッチを使用してコンパイルする場合、次の Microsoft 拡張機能は使用できません。
- IDL ファイル内の抽象宣言子 (名前のないパラメーター)。
- COM オブジェクトのインターフェイス定義。
- 17 文字を超えるインターフェイス名。
- wire_marshal、user_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 ファイル内の複数のインターフェイス。
- インターフェイス ブロックの外部の定義。
- far や stdcall などの型修飾子。
- 方向属性の省略。
/osf スイッチを使用してコンパイルする場合、次の C/C++ 言語拡張機能は使用できません。
- 構造体と共用体のビット フィールド。
- 2 つのスラッシュ文字 (//) で区切られた 1 行のコメント。
- 外部宣言。
- パラメーター リストに省略記号を含むプロシージャ。
- 「int」と入力します。
- void * と入力します (context_handle属性を除く)。
- ANSI 準拠プレフィックスを持つフォームを含む型修飾子には、 __cdecl、 cdecl、 const、 const、 __export、 export、 __far、 far、 __loadds、 loadds、 __near、 near、 __pascal、 pascal、 __stdcall、 stdcall、 __volatile、 volatile の 2 つのアンダースコア文字が含まれます。
- 任意の # プラグマ 警告または #pragma コメント。
- 型のシリアル化。
- __int3264データ型。
- /protocol スイッチと ndr64 転送構文。
midl /osf filename.idl
midl /osf /app_config filename.idl