Ihr Code versucht, eine Datei im aktuellen Verzeichnis zu erstellen, aber bei GetCurrentDirectory() tritt eine Ausnahme auf. Um das Problem zu verstehen, schauen wir uns die verwendeten Parameter genauer an:
Außerdem ist das Abrufen des ausführbaren Pfads mit GetCurrentDirectory() nicht zuverlässig. Verwenden Sie stattdessen die Funktion „GetModuleFileName“:
TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName(NULL, buffer, MAX_PATH);
Für einen umfassenderen Ansatz ziehen Sie die folgende Funktion in Betracht, die das Verzeichnis ohne den Dateinamen extrahiert:
#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); }
Das obige ist der detaillierte Inhalt vonWarum löst GetCurrentDirectory() eine Ausnahme aus, wenn versucht wird, eine Datei zu erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!