summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/DynamicLibrary.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/DynamicLibrary.cpp')
-rw-r--r--cpp/src/Ice/DynamicLibrary.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/cpp/src/Ice/DynamicLibrary.cpp b/cpp/src/Ice/DynamicLibrary.cpp
index de114ba985b..1fa6c86ad73 100644
--- a/cpp/src/Ice/DynamicLibrary.cpp
+++ b/cpp/src/Ice/DynamicLibrary.cpp
@@ -9,7 +9,7 @@
#include <Ice/DynamicLibrary.h>
#include <IceUtil/StringUtil.h>
-#include <IceUtil/Unicode.h>
+#include <IceUtil/StringConverter.h>
#ifndef _WIN32
# include <dlfcn.h>
@@ -22,9 +22,8 @@ using namespace std;
IceUtil::Shared* IceInternal::upCast(DynamicLibrary* p) { return p; }
IceUtil::Shared* IceInternal::upCast(DynamicLibraryList* p) { return p; }
-IceInternal::DynamicLibrary::DynamicLibrary(const Ice::StringConverterPtr& stringConverter) :
- _hnd(0),
- _stringConverter(stringConverter)
+IceInternal::DynamicLibrary::DynamicLibrary() :
+ _hnd(0)
{
}
@@ -198,10 +197,14 @@ IceInternal::DynamicLibrary::loadEntryPoint(const string& entryPoint, bool useIc
bool
IceInternal::DynamicLibrary::load(const string& lib)
{
+ //
+ // Don't need to use a wide string converter as the wide string is passed
+ // to Windows API.
+ //
#ifdef ICE_OS_WINRT
- _hnd = LoadPackagedLibrary(IceUtil::stringToWstring(nativeToUTF8(_stringConverter, lib)).c_str(), 0);
+ _hnd = LoadPackagedLibrary(IceUtil::nativeToWnative(IceUtil::getProcessStringConverter(), 0, lib).c_str(), 0);
#elif defined(_WIN32)
- _hnd = LoadLibraryW(IceUtil::stringToWstring(nativeToUTF8(_stringConverter, lib)).c_str());
+ _hnd = LoadLibraryW(IceUtil::nativeToWnative(IceUtil::getProcessStringConverter(), 0, lib).c_str());
#else
int flags = RTLD_NOW | RTLD_GLOBAL;