From 2d1532e5d0d8f96d1e245795d3e2c35a01131b7d Mon Sep 17 00:00:00 2001 From: hogliux Date: Tue, 24 Oct 2017 16:32:59 +0100 Subject: [PATCH] Windows: Added a more robust way of getting the path of the current dll --- modules/juce_core/native/juce_win32_Threads.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/juce_core/native/juce_win32_Threads.cpp b/modules/juce_core/native/juce_win32_Threads.cpp index 62c7b76643..1eaa837317 100644 --- a/modules/juce_core/native/juce_win32_Threads.cpp +++ b/modules/juce_core/native/juce_win32_Threads.cpp @@ -241,7 +241,14 @@ static void* currentModuleHandle = nullptr; void* JUCE_CALLTYPE Process::getCurrentModuleInstanceHandle() noexcept { if (currentModuleHandle == nullptr) - currentModuleHandle = GetModuleHandleA (nullptr); + { + auto status = GetModuleHandleEx (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS | GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT, + (LPCTSTR) ¤tModuleHandle, + (HMODULE*) ¤tModuleHandle); + + if (status == 0 || currentModuleHandle == nullptr) + currentModuleHandle = GetModuleHandleA (nullptr); + } return currentModuleHandle; }