Heim > Artikel > Backend-Entwicklung > Warum löst GetCurrentDirectory() eine Ausnahme aus und wie kann ich sie beheben?
Problem:
Beim Versuch, das aktuelle Verzeichnis mit GetCurrentDirectory() abzurufen, ist eine Ausnahme aufgetreten.
Mögliche Ursache:
Die LPTSTR-Variable NPath wurde nicht ordnungsgemäß initialisiert.
Empfohlene Lösung:
Um dieses Problem zu beheben, reservieren Sie Speicher für NPath, bevor Sie GetCurrentDirectory() verwenden. Alternativ können Sie auch die Funktion GetModuleFileName() verwenden, um den ausführbaren Pfad abzurufen.
Codebeispiel für die Verwendung von GetModuleFileName():
TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName( NULL, buffer, MAX_PATH );
Codebeispiel für Verzeichnis aus Pfad extrahieren:
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); }
Durch Verwendung von GetModuleFileName() und Extrahieren des Verzeichnisses Teil können Sie das aktuelle Verzeichnis erfolgreich abrufen, ohne dass Ausnahmen auftreten.
Das obige ist der detaillierte Inhalt vonWarum löst GetCurrentDirectory() eine Ausnahme aus und wie kann ich sie beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!