From cfebd24dfc593157a41c4b398afdc75ec7791aa6 Mon Sep 17 00:00:00 2001 From: DefTruth <31974251+DefTruth@users.noreply.github.com> Date: Thu, 2 Nov 2023 12:51:46 +0800 Subject: [PATCH] [Backend] fix ort backend windows build error (#2269) * support ort offline graph optimize option * support ort offline graph optimize option * [Backend] fix windows build error --- fastdeploy/runtime/backends/ort/ort_backend.cc | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/fastdeploy/runtime/backends/ort/ort_backend.cc b/fastdeploy/runtime/backends/ort/ort_backend.cc index c9dfee821e..ccb6ac0883 100644 --- a/fastdeploy/runtime/backends/ort/ort_backend.cc +++ b/fastdeploy/runtime/backends/ort/ort_backend.cc @@ -31,6 +31,16 @@ namespace fastdeploy { std::vector OrtBackend::custom_operators_ = std::vector(); +std::wstring ToWstring(const std::string &str) { + unsigned len = str.size() * 2; + setlocale(LC_CTYPE, ""); + wchar_t *p = new wchar_t[len]; + mbstowcs(p, str.c_str(), len); + std::wstring wstr(p); + delete[] p; + return wstr; +} + bool OrtBackend::BuildOption(const OrtBackendOption& option) { option_ = option; if (option.graph_optimization_level >= 0) { @@ -47,7 +57,12 @@ bool OrtBackend::BuildOption(const OrtBackendOption& option) { session_options_.SetExecutionMode(ExecutionMode(option.execution_mode)); } if (!option.optimized_model_filepath.empty()) { +#if (defined(_WIN32) || defined(_WIN64)) + session_options_.SetOptimizedModelFilePath( + ToWstring(option.optimized_model_filepath).c_str()); +#else session_options_.SetOptimizedModelFilePath(option.optimized_model_filepath.c_str()); +#endif } #ifdef WITH_DIRECTML