問題:
嘗試使用 GetCurrentDirectory() 取得目前目錄時遇到異常。
有可能原因:
LPTSTR 變數 NPath 尚未正確初始化。
推薦解決方案:
要解決此問題,請在使用 GetCurrentDirectory() 之前為 NPath 分配記憶體。或者,考慮利用 GetModuleFileName() 函數來取得可執行路徑。
使用GetModuleFileName() 的代碼示例:
TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName( NULL, buffer, MAX_PATH );
以下代碼示例從路徑中提取目錄:
std::wstring ExePath() { TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName( NULL, buffer, MAX_PATH ); std::wstring::size_type pos = std::wstring(buffer).find_last_of(L"\/"); return std::wstring(buffer).substr(0, pos); }
利用GetModuleFileName()並擷取目錄部分,可以成功取得目前目錄,不會遇到異常。
以上是為什麼 GetCurrentDirectory() 拋出異常以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!