| OLD | NEW |
| 1 #include <memory> | 1 #include <memory> |
| 2 #include <stdexcept> | 2 #include <stdexcept> |
| 3 #include <vector> | 3 #include <vector> |
| 4 | 4 |
| 5 #include <Windows.h> | 5 #include <Windows.h> |
| 6 #include <ShlObj.h> | 6 #include <ShlObj.h> |
| 7 | 7 |
| 8 #include "Utils.h" | 8 #include "Utils.h" |
| 9 | 9 |
| 10 namespace | 10 namespace |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 | 59 |
| 60 int utf16StringLength = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), length, N
ULL, 0); | 60 int utf16StringLength = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), length, N
ULL, 0); |
| 61 if (utf16StringLength == 0) | 61 if (utf16StringLength == 0) |
| 62 throw std::runtime_error("ToUTF16String failed. Can't determine the length o
f the buffer needed."); | 62 throw std::runtime_error("ToUTF16String failed. Can't determine the length o
f the buffer needed."); |
| 63 | 63 |
| 64 std::wstring utf16String(utf16StringLength, L'\0'); | 64 std::wstring utf16String(utf16StringLength, L'\0'); |
| 65 MultiByteToWideChar(CP_UTF8, 0, str.c_str(), length, &utf16String[0], utf16Str
ingLength); | 65 MultiByteToWideChar(CP_UTF8, 0, str.c_str(), length, &utf16String[0], utf16Str
ingLength); |
| 66 return utf16String; | 66 return utf16String; |
| 67 } | 67 } |
| 68 | 68 |
| 69 std::vector<std::wstring> ToUtf16Strings(const std::vector<std::string>& values) |
| 70 { |
| 71 std::vector<std::wstring> result; |
| 72 result.reserve(values.size()); |
| 73 transform(values.begin(), values.end(), back_inserter(result), ToUtf16String); |
| 74 return result; |
| 75 } |
| 76 |
| 69 std::wstring GetDllDir() | 77 std::wstring GetDllDir() |
| 70 { | 78 { |
| 71 std::vector<WCHAR> path(MAX_PATH); | 79 std::vector<WCHAR> path(MAX_PATH); |
| 72 int length = GetModuleFileNameW((HINSTANCE)&__ImageBase, &path[0], static_cast
<DWORD>(path.size())); | 80 int length = GetModuleFileNameW((HINSTANCE)&__ImageBase, &path[0], static_cast
<DWORD>(path.size())); |
| 73 | 81 |
| 74 while (length == path.size()) | 82 while (length == path.size()) |
| 75 { | 83 { |
| 76 // Buffer too small, double buffer size | 84 // Buffer too small, double buffer size |
| 77 path.resize(path.size() * 2); | 85 path.resize(path.size() * 2); |
| 78 length = GetModuleFileNameW((HINSTANCE)&__ImageBase, &path[0], static_cast<D
WORD>(path.size())); | 86 length = GetModuleFileNameW((HINSTANCE)&__ImageBase, &path[0], static_cast<D
WORD>(path.size())); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 } | 131 } |
| 124 | 132 |
| 125 void ReplaceString(std::wstring& input, const std::wstring placeholder, const st
d::wstring replacement) | 133 void ReplaceString(std::wstring& input, const std::wstring placeholder, const st
d::wstring replacement) |
| 126 { | 134 { |
| 127 size_t replaceStart = input.find(placeholder); | 135 size_t replaceStart = input.find(placeholder); |
| 128 if (replaceStart != std::string::npos) | 136 if (replaceStart != std::string::npos) |
| 129 { | 137 { |
| 130 input.replace(replaceStart, placeholder.length(), replacement); | 138 input.replace(replaceStart, placeholder.length(), replacement); |
| 131 } | 139 } |
| 132 } | 140 } |
| OLD | NEW |