首頁 >後端開發 >C++ >為什麼 GetCurrentDirectory() 拋出異常以及如何修復它?

為什麼 GetCurrentDirectory() 拋出異常以及如何修復它?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-09 17:53:02482瀏覽

Why is GetCurrentDirectory() throwing an exception and how can I fix it?

取得目前目錄時發生錯誤

問題:
嘗試使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn