NeedCurrentDirectoryForExePathA 関数 (processenv.h)
指定した実行可能ファイルの検索パスに現在のディレクトリを含める必要があるかどうかを判断します。
構文
BOOL NeedCurrentDirectoryForExePathA(
[in] LPCSTR ExeName
);
パラメーター
[in] ExeName
実行可能ファイルの名前。
戻り値
現在のディレクトリが検索パスの一部である必要がある場合、戻り値は TRUE です。 それ以外の場合、戻り値は FALSE です。
注釈
この関数は、呼び出し元が相対実行可能ファイル名を絶対名に明示的に解決する必要があるインスタンスでのみ呼び出す必要があります。 CreateProcess が相対実行可能ファイル名で呼び出されると、実行可能ファイルが自動的に検索され、この関数が呼び出されて検索パスが決定されます。
ほとんどのシステム関数は独自のパス解決を実行するため、この関数は、現在のディレクトリに基づいて指定された実行可能ファイルの検索パスを解決しようとしている場合にのみ呼び出す必要があります。
NoDefaultCurrentDirectoryInExePath 環境変数の値によって、この関数が返す値が決まります。 ただし、この環境変数のレジストリの場所が変更される可能性があります。環境変数を直接チェックするのではなく、この関数を呼び出す必要があります。
ExeName パラメーターの値に円記号 (\) が含まれている場合、この関数は常に TRUE を返します。 円記号が含まれていない場合は、NoDefaultCurrentDirectoryInExePath 環境変数の存在がチェックされ、その値はチェックされません。
CreateProcess の既定の検索パス解決アルゴリズムに依存するのではなく、この関数を呼び出す必要があるインスタンスの例として、"cmd.exe" 実行可能ファイルがあります。 CreateProcess を呼び出す前に独自のパス解決を行うため、この関数を呼び出してコマンド検索パス を決定します。 この関数が TRUE を返す場合、cmd.exe はパス ". を使用します。実行可能ファイル検索の %PATH%" です。 FALSE が返された場合、cmd.exe は検索にパス "%PATH%" を使用します。
注意
processenv.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして NeedCurrentDirectoryForExePath を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | processenv.h (Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |