Share via


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 預處理器常數的定義,將 NeedCurrentDirectoryForExePath 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 processenv.h (包括 Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CreateProcess

處理序和執行緒函式