インポート属性
import ディレクティブは、メイン IDL ファイルから参照する定義を含む別の IDL、ODL、またはヘッダー ファイルを指定します。
import "filename" [[ , ... ]] ;
-
ファイル名
-
インポートするヘッダー、IDL、または ODL ファイルの名前を指定します。
import ディレクティブを使用すると、インポートする ファイル内のすべての IDL ステートメント (typedef、定数宣言、インターフェイス定義など) が、インポートする に使用できるようになります。IDL ファイル。
インポートされたファイルは、インポートする IDL ファイルとは別に処理されます (つまり、CPP プリプロセッサは個別に呼び出されます)。 このように、#defineなどのプリプロセッサ ディレクティブは、インポートされたヘッダーまたは IDL ファイルからインポートする IDL ファイルに引き継がれないでください。
C 言語プリプロセッサ マクロ #includeと同様に、インポート ディレクティブは、 インポート された IDL ファイルで定義されたデータ型を含むようにコンパイラに指示します。 #include ディレクティブとは異なり、インポートされたファイル内のスタブは生成されないので、import ディレクティブはプロシージャプロトタイプを無視します。
インポートを使用して IDL ファイルにヘッダー ファイルを含める方法の詳細については、「システム ヘッダー ファイルのインポート」を参照してください。
C 言語ヘッダー (。H) インターフェイス用に生成されたファイルには、インポートされた型が直接含まれていませんが、代わりに、インポートされたインターフェイスに対応するヘッダー ファイルの #include ディレクティブが生成されます。 たとえば、BASE をインポートする場合です。IDL を派生に変換します。IDL。生成されたヘッダー ファイル DERIVED です。H には BASE.H #include ディレクティブが含まれます。
次の規則が適用されます。
- インポート キーワード (keyword)は省略可能であり、IDL ファイルに 0 回以上表示できます。
- 各インポート キーワード (keyword)は、複数のファイル名に関連付けることができます。
- 複数のファイル名をコンマで区切ります。
- ファイル名を引用符で囲み、import ステートメントをセミコロン (;)で終了する必要があります。
- 属性のないインターフェイスを別の IDL ファイルにインポートできます。 ただし、インターフェイスにはデータ型のみを含める必要があります。プロシージャを含めることはできません。 インポートされたインターフェイスに 1 つのプロシージャが含まれている場合は、 ローカル 属性または UUID 属性を指定する必要があります。
- インポート関数はべき等です。つまり、インターフェイスを複数回インポートしても、追加の影響はありません。
注意
import ディレクティブの動作は、MIDL コンパイラ モード スイッチ /ms_ext (既定値)、/osf、および /app_configとは無関係です。 ただし、コンパイラ モード (/osf または /ms_ext) は、インポートされた型のポインター属性の装飾に影響を与える可能性があります。 詳細については、「 ポインター属性の型の継承」を参照してください。
import "myoldodl.odl";
import "unknwn.idl";
import "part1.idl", "part2.idl", "part3.idl";