Rumah > Artikel > pembangunan bahagian belakang > Mengapa GetCurrentDirectory() membuang pengecualian apabila cuba mencipta fail?
Kod anda bertujuan untuk mencipta fail dalam direktori semasa, tetapi pengecualian berlaku di GetCurrentDirectory(). Untuk memahami isu ini, mari kita mendalami parameter yang digunakan:
Selain itu, mendapatkan semula laluan boleh laku menggunakan GetCurrentDirectory() tidak boleh dipercayai. Gunakan fungsi GetModuleFileName sebaliknya:
TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName(NULL, buffer, MAX_PATH);
Untuk pendekatan yang lebih menyeluruh, pertimbangkan fungsi berikut yang mengekstrak direktori tanpa nama fail:
#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); }
Atas ialah kandungan terperinci Mengapa GetCurrentDirectory() membuang pengecualian apabila cuba mencipta fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!