Salome HOME
Copyright update 2022
[modules/yacs.git] / src / bases / DynLibLoaderWin.cxx
index 59c3ce56edc81b1947903ab6454f391787e77267..d32b94561caacd266bbf7b767f6a52abf3239094 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2006-2013  CEA/DEN, EDF R&D
+// Copyright (C) 2006-2022  CEA/DEN, EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -86,7 +86,16 @@ bool DynLibLoaderWin::load()
 {
   std::string fullLibName(_libName);
   fullLibName+=_extForDynLib;
-  _handleOnLoadedLib=LoadLibrary(fullLibName.c_str());
+#if defined(UNICODE) && defined(WIN32)
+  size_t length = strlen(fullLibName.c_str()) + sizeof(char);
+  wchar_t* aPath = new wchar_t[length + 1];
+  memset(aPath, '\0', length);
+  mbstowcs(aPath, fullLibName.c_str(), length);
+#else
+  const char* aPath = fullLibName.c_str();
+#endif
+
+  _handleOnLoadedLib=LoadLibrary(aPath);
   return _handleOnLoadedLib != NULL;
 }