From 5dbba10ee1ec3157790b00095c56884b39039dcf Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Wed, 21 Sep 2022 16:44:41 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=9B=9E=E8=B0=83=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E6=97=B6=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sane/scanner.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sane/scanner.cpp b/sane/scanner.cpp index 2cccef5..68ed065 100644 --- a/sane/scanner.cpp +++ b/sane/scanner.cpp @@ -85,7 +85,13 @@ namespace callback if (it != g_scanner_instances.end()) return it->invoker->handle_device_event(code, data, len); else + { + wchar_t msg[218] = { 0 }; + swprintf_s(msg, _countof(msg) - 1, L"Lost device(0x%08X) when event(%u) occurs!\r\n", hdev, code); + log_info(msg, 0); + return 0; + } } void reg_callback(SANE_Handle dev, scanner* invoker) { @@ -132,7 +138,6 @@ scanner::scanner(SCANNERID id) : handle_(NULL), id_(id), ex_id_(EXTENSION_ID_BAS } scanner::~scanner() { - callback::unreg_callback(this); if (cfg_) delete cfg_; } @@ -282,8 +287,8 @@ int scanner::open(void) ret = hg_sane_middleware::instance()->open_device(name.c_str(), &handle_); if (ret == SANE_STATUS_GOOD) { - scanner_name_ = local_trans::a2u(name.c_str(), CP_UTF8); callback::reg_callback(handle_, this); + scanner_name_ = local_trans::a2u(name.c_str(), CP_UTF8); ret = init_options_id(); load_config((cfg_path_ + scanner_name_).c_str()); // apply_config(); @@ -293,6 +298,7 @@ int scanner::open(void) } int scanner::close(void) { + callback::unreg_callback(this); if (handle_) hg_sane_middleware::instance()->close_device(handle_); handle_ = NULL;