From 8c1474ab3d0199c9b8d418d634b00e9d450c8c1e Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Mon, 19 Sep 2022 18:41:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=A7=BB=E5=8A=A8=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=97=B6=EF=BC=8C=E5=B0=9D=E8=AF=959=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- twain/twain/huagaods.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/twain/twain/huagaods.cpp b/twain/twain/huagaods.cpp index 8d122b4..7bc2e96 100644 --- a/twain/twain/huagaods.cpp +++ b/twain/twain/huagaods.cpp @@ -1183,6 +1183,7 @@ Twpp::Result huagao_ds::imageFileXferGet(const Twpp::Identity& origin) DeleteFileA(file.c_str()); } + int cv_e = 0; if (ret.status() == ConditionCode::Success && m_fileXfer.format() != ImageFileFormat::Bmp) { SANE_ImageFormatConvert conv; @@ -1202,16 +1203,25 @@ Twpp::Result huagao_ds::imageFileXferGet(const Twpp::Identity& origin) conv.dst.is_file = SANE_TRUE; conv.dst.data = target.c_str(); conv.dst.data_len = target.length(); - MoveFileA(target.c_str(), file.c_str()); - if(scanner_->convert_image(&conv) != SCANNER_ERR_OK) - ret = { ReturnCode::Failure, ConditionCode::OperationError }; - DeleteFileA(file.c_str()); + while (!MoveFileA(target.c_str(), file.c_str())) + { + if (++cv_e >= 9) + break; + Sleep(30); + } + if (cv_e < 9) + { + cv_e = scanner_->convert_image(&conv); + if (cv_e != SCANNER_ERR_OK) + ret = { ReturnCode::Failure, ConditionCode::OperationError }; + DeleteFileA(file.c_str()); + } } { std::wstring info(load_sane_util::ansi2unic(m_fileXfer.filePath().string().c_str())); wchar_t r[80] = { 0 }; - swprintf_s(r, _countof(r) - 1, L": result = %d\r\n", ret.returnCode()); + swprintf_s(r, _countof(r) - 1, L": status = %d(convert: 0x%x)\r\n", ret.status(), cv_e); load_sane_util::log_info((info + r).c_str(), 0); } }