From 23483dff868d0f064a16911b05105c5a575da92b Mon Sep 17 00:00:00 2001 From: Robin Mills Date: Wed, 28 Nov 2018 12:26:06 +0000 Subject: [PATCH] #571 Restore the original windows getProcessCode() because Microsoft's GetModuleFileName isn't effective! --- src/futils.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/futils.cpp b/src/futils.cpp index 18e4b9f1..a30acd98 100644 --- a/src/futils.cpp +++ b/src/futils.cpp @@ -464,9 +464,14 @@ namespace Exiv2 { { std::string ret("unknown"); #if defined(WIN32) - TCHAR filename[MAX_PATH]; - if ( GetModuleFileName( (HMODULE)"", filename, MAX_PATH ) != 0 ) { - ret = filename; + HANDLE processHandle = NULL; + processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, GetCurrentProcessId()); + if (processHandle != NULL) { + TCHAR filename[MAX_PATH]; + if (GetModuleFileNameEx(processHandle, NULL, filename, MAX_PATH) != 0) { + ret = filename; + } + CloseHandle(processHandle); } #elif defined(__APPLE__) const int pid = getpid();