From d22512c70016f8acf49f71d1c6668706eb39aee7 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Tue, 18 Jun 2024 18:13:48 -0500 Subject: [PATCH] why is Windows so special --- src/main.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 3e066f7fb..8644e091b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -127,7 +127,15 @@ const char* localeDirs[]={ bool getExePath(char* argv0, char* exePath, size_t maxSize) { if (argv0==NULL) return false; +#ifdef _WIN32 + wchar_t exePathW[4096]; + WString argv0W=utf8To16(argv0); + if (GetFullPathNameW(argv0W.c_str(),4095,exePathW,NULL)==0) return false; + String exePathS=utf16To8(exePathW.c_str()); + strncpy(exePath,exePathS.c_str(),maxSize); +#else if (realpath(argv0,exePath)==NULL) return false; +#endif char* lastChar=strrchr(exePath,DIR_SEPARATOR); if (lastChar==NULL) return false; *lastChar=0;