Heim  >  Artikel  >  Backend-Entwicklung  >  Warum löst GetCurrentDirectory() eine Ausnahme aus und wie kann ich sie beheben?

Warum löst GetCurrentDirectory() eine Ausnahme aus und wie kann ich sie beheben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-09 17:53:02433Durchsuche

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

Fehler beim Abrufen des aktuellen Verzeichnisses

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn