次の方法で共有


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 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー processenv.h (Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

CreateProcess の

プロセス関数とスレッド関数の