#571 Restore the original windows getProcessCode() because Microsoft's GetModuleFileName isn't effective!

v0.27.3
Robin Mills 7 years ago committed by Luis Díaz Más
parent 108509a089
commit 23483dff86

@ -464,10 +464,15 @@ namespace Exiv2 {
{ {
std::string ret("unknown"); std::string ret("unknown");
#if defined(WIN32) #if defined(WIN32)
HANDLE processHandle = NULL;
processHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, GetCurrentProcessId());
if (processHandle != NULL) {
TCHAR filename[MAX_PATH]; TCHAR filename[MAX_PATH];
if ( GetModuleFileName( (HMODULE)"", filename, MAX_PATH ) != 0 ) { if (GetModuleFileNameEx(processHandle, NULL, filename, MAX_PATH) != 0) {
ret = filename; ret = filename;
} }
CloseHandle(processHandle);
}
#elif defined(__APPLE__) #elif defined(__APPLE__)
const int pid = getpid(); const int pid = getpid();
char pathbuf[PROC_PIDPATHINFO_MAXSIZE]; char pathbuf[PROC_PIDPATHINFO_MAXSIZE];

Loading…
Cancel
Save