From a7f58f39cff4df0f9e55f674fdcf045cf721dc6b Mon Sep 17 00:00:00 2001 From: "lane.wei" Date: Sat, 6 Jul 2024 20:27:18 +0800 Subject: [PATCH] ENH: network: load dlls from current directory if failed JIRA: no-jira Change-Id: I86efafe3aefac85d56879a68f864a52c0e62fca5 (cherry picked from commit cdf0859e78e8d62c2de13f2f9bf56a216a79a12a) (cherry picked from commit b4cc20ac14298bac2e928d1d598e9d75ca953ba3) --- src/slic3r/Utils/NetworkAgent.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/slic3r/Utils/NetworkAgent.cpp b/src/slic3r/Utils/NetworkAgent.cpp index 474132983d..27e51ffccd 100644 --- a/src/slic3r/Utils/NetworkAgent.cpp +++ b/src/slic3r/Utils/NetworkAgent.cpp @@ -171,6 +171,13 @@ int NetworkAgent::initialize_network_module(bool using_backup) ::MultiByteToWideChar(CP_UTF8, NULL, library.c_str(), strlen(library.c_str()) + 1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); netwoking_module = LoadLibrary(lib_wstr); }*/ + if (!netwoking_module) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", try load library directly from current directory"); + library = std::string(BAMBU_NETWORK_LIBRARY) + ".dll"; + memset(lib_wstr, 0, sizeof(lib_wstr)); + ::MultiByteToWideChar(CP_UTF8, NULL, library.c_str(), strlen(library.c_str())+1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); + netwoking_module = LoadLibrary(lib_wstr); + } #else #if defined(__WXMAC__) library = plugin_folder.string() + "/" + std::string("lib") + std::string(BAMBU_NETWORK_LIBRARY) + ".dylib"; @@ -300,7 +307,7 @@ int NetworkAgent::initialize_network_module(bool using_backup) get_model_mall_rating_result_ptr = reinterpret_cast(get_network_function("bambu_network_get_model_mall_rating")); get_mw_user_preference_ptr = reinterpret_cast(get_network_function("bambu_network_get_mw_user_preference")); - get_mw_user_4ulist_ptr = reinterpret_cast(get_network_function("bambu_network_get_mw_user_4ulist")); + get_mw_user_4ulist_ptr = reinterpret_cast(get_network_function("bambu_network_get_mw_user_4ulist")); return 0; } @@ -419,7 +426,7 @@ int NetworkAgent::unload_network_module() put_rating_picture_oss_ptr = nullptr; put_model_mall_rating_url_ptr = nullptr; get_model_mall_rating_result_ptr = nullptr; - + get_mw_user_preference_ptr = nullptr; get_mw_user_4ulist_ptr = nullptr; @@ -448,12 +455,13 @@ void* NetworkAgent::get_bambu_source_entry() memset(lib_wstr, 0, sizeof(lib_wstr)); ::MultiByteToWideChar(CP_UTF8, NULL, library.c_str(), strlen(library.c_str())+1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); source_module = LoadLibrary(lib_wstr); - /*if (!source_module) { + if (!source_module) { + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", try load BambuSource directly from current directory"); library = std::string(BAMBU_SOURCE_LIBRARY) + ".dll"; memset(lib_wstr, 0, sizeof(lib_wstr)); ::MultiByteToWideChar(CP_UTF8, NULL, library.c_str(), strlen(library.c_str()) + 1, lib_wstr, sizeof(lib_wstr) / sizeof(lib_wstr[0])); source_module = LoadLibrary(lib_wstr); - }*/ + } #else #if defined(__WXMAC__) library = plugin_folder.string() + "/" + std::string("lib") + std::string(BAMBU_SOURCE_LIBRARY) + ".dylib";