Share via


#include ディレクティブ (DirectX HLSL)

このディレクティブが登場した時点における指定ファイルの内容を、ソース プログラムに挿入するためのプリプロセッサ ディレクティブです。

#include "filename"
#include <filename>

パラメーター

  • filename
    インクルードするファイルのファイル名です。必要に応じて、ファイル名の前にディレクトリを指定できます。このファイル名では既存のファイルを指定する必要があります。

解説

#include ディレクティブは、指定したファイルの内容全体に置き換えられます。プリプロセッサは、指定された名前のファイルを検出した時点で検索を停止します。一意の完全なファイル パスを指定した場合は、プリプロセッサは指定されたパス内のみを検索します。

    エフェクト コンパイラ ツール は、/I スイッチを使用する組み込みのインクルード ハンドラーを備えています。ただし、API からコンパイラを実行する際は、ID3DXInclude インターフェイスを実装することで、カスタマイズしたインクルード ハンドラーを提供できます。

2 つの構文形式の違いは、次の表に示すように、不完全なパスが指定された場合に、プリプロセッサがヘッダー ファイルを検索する順序です。

構文形式 プリプロセッサの検索パターン
#include "filename" インクルード ファイルの検索場所
  1. #include ディレクティブを記述したファイルと同じディレクトリ内。
  2. #include ディレクティブを記述したファイルの #include ディレクティブを記述した任意のファイルのディレクトリ内。
  3. /I コンパイラ オプションで指定されたパス内 (これらのパスが指定された順序で)。
  4. INCLUDE 環境変数で指定されたパス内 (これらのパスが指定された順序で)。

         INCLUDE 環境変数は開発環境では無視されます。プロジェクトのインクルード パスを設定する方法については、開発環境のドキュメントを参照してください。

#include <filename> インクルード ファイルの検索場所
  1. /I コンパイラ オプションで指定されたパス内 (これらのパスが指定された順序で)。
  2. INCLUDE 環境変数で指定されたパス内 (これらのパスが指定された順序で)。

         INCLUDE 環境変数は開発環境では無視されます。プロジェクトのインクルード パスを設定する方法については、開発環境のドキュメントを参照してください。

次の例では、プリプロセッサによって #include ディレクティブが stdio.h の内容に置換されます。この例では、山かっこの形式を使用しているため、プリプロセッサは、/I コンパイラ オプションと INCLUDE 環境変数によって指定されたディレクトリ内でのみ、このファイルを検索します。

#include <stdio.h>

関連項目

プリプロセッサ ディレクティブ (DirectX HLSL)ID3D10Include インターフェイスエフェクト コンパイラ ツール