首頁 > 後端開發 > C++ > 主體

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

Linda Hamilton
發布: 2024-11-08 14:59:01
原創
174 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板