| 156 | } |
| 157 | |
| 158 | Status LoadLibrary(const char* library_filename, void** handle) override { |
| 159 | std::string file_name = library_filename; |
| 160 | std::replace(file_name.begin(), file_name.end(), '/', '\\'); |
| 161 | |
| 162 | std::wstring ws_file_name(Utf8ToWideChar(file_name)); |
| 163 | |
| 164 | HMODULE hModule = LoadLibraryExW(ws_file_name.c_str(), NULL, |
| 165 | LOAD_WITH_ALTERED_SEARCH_PATH); |
| 166 | if (!hModule) { |
| 167 | return errors::NotFound(file_name + " not found"); |
| 168 | } |
| 169 | *handle = hModule; |
| 170 | return Status::OK(); |
| 171 | } |
| 172 | |
| 173 | Status GetSymbolFromLibrary(void* handle, const char* symbol_name, |
| 174 | void** symbol) override { |