首頁 >後端開發 >C++ >為什麼 GetCurrentDirectory() 在嘗試建立檔案時會拋出異常?

為什麼 GetCurrentDirectory() 在嘗試建立檔案時會拋出異常?

Linda Hamilton
Linda Hamilton原創
2024-11-08 14:59:01257瀏覽

Why is GetCurrentDirectory() throwing an exception when trying to create a file?

對 GetCurrentDirectory() 異常進行故障排除

您的程式碼試圖在當前目錄中建立文件,但 GetCurrentDirectory() 發生異常。為了理解這個問題,讓我們深入研究一下所使用的參數:

  • MAX_PATH:這是一個常數,表示 Windows 支援的最大路徑大小。使用 TCHAR Buffer[MAX_PATH] 而不是 NPath = NULL。
  • NPath:LPTSTR 類型是指向字串的指標。首先使用 TCHAR Buffer[MAX_PATH] 對其進行初始化。

此外,使用 GetCurrentDirectory() 來擷取執行路徑並不可靠。請改用 GetModuleFileName 函數:

TCHAR buffer[MAX_PATH] = { 0 };
GetModuleFileName(NULL, buffer, MAX_PATH);

要獲得更全面的方法,請考慮使用以下函數來提取不含檔名的目錄:

#include <windows.h>
#include <string>
#include <iostream>

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);
}

以上是為什麼 GetCurrentDirectory() 在嘗試建立檔案時會拋出異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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