From a2aee92b74e3ba1c3891d7579819d5a3f865242a Mon Sep 17 00:00:00 2001 From: Guenter Obiltschnig Date: Sat, 14 Sep 2013 09:47:55 +0200 Subject: [PATCH] fixed GH# 259 --- Foundation/src/EventLogChannel.cpp | 48 ++++++++++++++++++++---------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/Foundation/src/EventLogChannel.cpp b/Foundation/src/EventLogChannel.cpp index 56bff1909..7d3b76611 100644 --- a/Foundation/src/EventLogChannel.cpp +++ b/Foundation/src/EventLogChannel.cpp @@ -1,7 +1,7 @@ // // EventLogChannel.cpp // -// $Id: //poco/1.4/Foundation/src/EventLogChannel.cpp#1 $ +// $Id: //poco/1.4/Foundation/src/EventLogChannel.cpp#4 $ // // Library: Foundation // Package: Logging @@ -56,10 +56,10 @@ EventLogChannel::EventLogChannel(): _logFile("Application"), _h(0) { - static const int length = MAX_PATH + 1; + const DWORD maxPathLen = MAX_PATH + 1; #if defined(POCO_WIN32_UTF8) - wchar_t name[length]; - int n = GetModuleFileNameW(NULL, name, length); + wchar_t name[maxPathLen]; + int n = GetModuleFileNameW(NULL, name, maxPathLen); if (n > 0) { wchar_t* end = name + n - 1; @@ -69,8 +69,8 @@ EventLogChannel::EventLogChannel(): UnicodeConverter::toUTF8(uname, _name); } #else - char name[length]; - int n = GetModuleFileNameA(NULL, name, length); + char name[maxPathLen]; + int n = GetModuleFileNameA(NULL, name, maxPathLen); if (n > 0) { char* end = name + n - 1; @@ -239,9 +239,17 @@ void EventLogChannel::setUpRegistry() const std::wstring path; #if defined(POCO_DLL) #if defined(_DEBUG) - path = findLibrary(L"PocoFoundationd.dll"); + #if defined(_WIN64) + path = findLibrary(L"PocoFoundation64d.dll"); + #else + path = findLibrary(L"PocoFoundationd.dll"); + #endif #else - path = findLibrary(L"PocoFoundation.dll"); + #if defined(_WIN64) + path = findLibrary(L"PocoFoundation64.dll"); + #else + path = findLibrary(L"PocoFoundation.dll"); + #endif #endif #endif @@ -251,9 +259,17 @@ void EventLogChannel::setUpRegistry() const std::string path; #if defined(POCO_DLL) #if defined(_DEBUG) - path = findLibrary("PocoFoundationd.dll"); + #if defined(_WIN64) + path = findLibrary("PocoFoundation64d.dll"); + #else + path = findLibrary("PocoFoundationd.dll"); + #endif #else - path = findLibrary("PocoFoundation.dll"); + #if defined(_WIN64) + path = findLibrary("PocoFoundation64.dll"); + #else + path = findLibrary("PocoFoundation.dll"); + #endif #endif #endif @@ -289,9 +305,9 @@ std::wstring EventLogChannel::findLibrary(const wchar_t* name) HMODULE dll = LoadLibraryW(name); if (dll) { - static const int length = MAX_PATH + 1; - wchar_t name[length]; - int n = GetModuleFileNameW(dll, name, length); + const DWORD maxPathLen = MAX_PATH + 1; + wchar_t name[maxPathLen]; + int n = GetModuleFileNameW(dll, name, maxPathLen); if (n > 0) path = name; FreeLibrary(dll); } @@ -304,9 +320,9 @@ std::string EventLogChannel::findLibrary(const char* name) HMODULE dll = LoadLibraryA(name); if (dll) { - static const int length = MAX_PATH + 1; - char name[length]; - int n = GetModuleFileNameA(dll, name, length); + const DWORD maxPathLen = MAX_PATH + 1; + char name[maxPathLen]; + int n = GetModuleFileNameA(dll, name, maxPathLen); if (n > 0) path = name; FreeLibrary(dll); }