From 56146725d602e4e01f70cc101452d176ca6fdb51 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Tue, 17 Oct 2023 09:35:32 +0800 Subject: [PATCH 1/6] =?UTF-8?q?IAutomaticBorderDetection=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E6=98=A0=E5=B0=84=E4=B8=BA=E5=8C=B9=E9=85=8D=E5=8E=9F=E5=A7=8B?= =?UTF-8?q?=E5=B0=BA=E5=AF=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- twain/twain/huagaods.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/twain/twain/huagaods.cpp b/twain/twain/huagaods.cpp index f7605d8..340b508 100644 --- a/twain/twain/huagaods.cpp +++ b/twain/twain/huagaods.cpp @@ -2576,13 +2576,13 @@ void huagao_ds::init_support_caps(void) if (Msg::Set == msg) { auto autodetectborder = data.currentItem(); int ret = SCANNER_ERR_OK; - SET_SANE_OPT_EX(ret, scanner_, is_size_check, (bool*)&autodetectborder); + SET_SANE_OPT_EX(ret, scanner_, ex_auto_paper_size, (bool*)&autodetectborder); return ret == SCANNER_ERR_OK ? success() : badValue(); } Bool init = false, erase = false; std::vector all; - GET_SANE_OPT_EX(bool, scanner_, is_size_check, NULL, &all); + GET_SANE_OPT_EX(bool, scanner_, ex_auto_paper_size, NULL, &all); init = (bool)all[sane_opts::RANGE_POS_DEFAULT]; erase = (bool)all[sane_opts::RANGE_POS_CURRENT]; return CapSupGetAllReset(msg, data, { false,true }, erase, init, erase ? 1 : 0, 0); From 80ffb60c341a2d01f975ec65bc2a4b0d5e220b06 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Tue, 17 Oct 2023 17:52:13 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E5=8F=8C=E5=BC=A0=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=EF=BC=8C=E5=8F=AA=E5=BC=B9=E7=AC=AC=E4=B8=80=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sane/scanner.cpp | 19 ++++++++++++++----- sane/scanner.h | 8 ++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/sane/scanner.cpp b/sane/scanner.cpp index b2d5711..64e8a8f 100644 --- a/sane/scanner.cpp +++ b/sane/scanner.cpp @@ -1588,6 +1588,7 @@ int scanner::set_is_multiout(bool enable) int scanner::thread_start(void) { scan_over_ = false; + double_handle_ = DOUBLE_FEED_NEED_UI; int ret = hg_sane_middleware::instance()->start(handle_, NULL); @@ -3576,15 +3577,23 @@ int scanner::handle_device_event(int ev_code, void* data, unsigned int* len) if (simg->flag.statu && callback::abnormal_image) { - if (callback::abnormal_image(simg) == SANE_Abnormal_Image_Discard) + if (double_handle_ == DOUBLE_FEED_NEED_UI) { - wchar_t info[128] = { 0 }; + if (callback::abnormal_image(simg) == SANE_Abnormal_Image_Discard) + { + wchar_t info[128] = { 0 }; - swprintf_s(info, _countof(info) - 1, L"Discard image %d for the status is: %d\r\n", simg->src_id, simg->flag.statu); - log_info(info, LOG_LEVEL_DEBUG_INFO); + swprintf_s(info, _countof(info) - 1, L"Discard image %d for the status is: %d\r\n", simg->src_id, simg->flag.statu); + log_info(info, LOG_LEVEL_DEBUG_INFO); - return 0; + double_handle_ = DOUBLE_FEED_DISCARD; + } + else + double_handle_ = DOUBLE_FEED_KEEP; } + + if (double_handle_ == DOUBLE_FEED_DISCARD) + return 0; } swprintf_s(name, _countof(name) - 1, L"img_%05u.bmp", ++img_ind_); diff --git a/sane/scanner.h b/sane/scanner.h index 203f239..1cf6b5f 100644 --- a/sane/scanner.h +++ b/sane/scanner.h @@ -40,6 +40,13 @@ class scanner : public ISaneInvoker, virtual public refer int bytes; }SIMPLEOPT; + enum + { + DOUBLE_FEED_NEED_UI = 0, // 需要用户抉择 + DOUBLE_FEED_KEEP, // 用户选择保存 + DOUBLE_FEED_DISCARD, // 用户选择丢弃 + }; + SANE_Handle handle_; SCANNERID id_; int err_; @@ -47,6 +54,7 @@ class scanner : public ISaneInvoker, virtual public refer int prev_start_result_; int dpi_; int fetch_imgs_ = 0; // count for images has fetched by APP + int double_handle_ = DOUBLE_FEED_NEED_UI; // bool is_bIndicator; bool is_show_setting_; unsigned int img_ind_; From 4b01b1adc95b0732c28a0c00b090186d8364a55b Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Thu, 19 Oct 2023 11:35:06 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E6=A8=AA=E5=90=91=E7=BA=B8=E5=BC=A0=E6=97=B6=E7=9A=84=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sane/sane_option_trans.cpp | 9 +++++++++ sane/scanner.cpp | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/sane/sane_option_trans.cpp b/sane/sane_option_trans.cpp index 4fc7979..8027002 100644 --- a/sane/sane_option_trans.cpp +++ b/sane/sane_option_trans.cpp @@ -214,6 +214,15 @@ namespace sane_opt_trans { VALUE_TO_TWAIN(g_paper_map, val); + std::string lat("\xe6\xa8\xaa\xe5\x90\x91"), // 横向 + v(to_default_language(val, nullptr)); + size_t pos = v.find(lat); + if (pos != std::string::npos) + { + v.erase(pos, lat.length()); + VALUE_TO_TWAIN(g_paper_map, v.c_str()); + } + return -1; } const char* switch_paper_lateral(const char* val) diff --git a/sane/scanner.cpp b/sane/scanner.cpp index 64e8a8f..68d67f1 100644 --- a/sane/scanner.cpp +++ b/sane/scanner.cpp @@ -1950,6 +1950,7 @@ EX_OPTION_HANDLER_IMPL(paper) int now = sane_opt_trans::paper_to_twain(buf), init = sane_opt_trans::paper_to_twain(def), val = 0; + std::vector exists; local_utility::free_memory(def); do @@ -1960,8 +1961,10 @@ EX_OPTION_HANDLER_IMPL(paper) { value_role role = VAL_ROLE_NONE; val = sane_opt_trans::paper_to_twain(desc->constraint.string_list[i]); - if (val == -1) + if (val == -1 || std::find(exists.begin(), exists.end(), val) != exists.end()) continue; + + exists.push_back(val); if (val == now) role = VAL_ROLE_CURRENT; if (val == init) From d0174b82a4f7265d27a79257e671af0c8948e0f4 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Fri, 20 Oct 2023 11:06:30 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=9B=B4=E6=8D=A2sane/scanner/lang?= =?UTF-8?q?=E4=B8=89=E4=B8=AA=E6=A8=A1=E5=9D=97=E5=90=8D=E7=A7=B0=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E4=B8=8E=E7=AC=AC=E4=B8=89=E6=96=B9APP?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=90=8D=E7=A7=B0=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build_base.bat | 18 ++++++++--------- device/device.def | 2 +- device/resource.h | 7 ++++--- device/scanner.vcxproj.user | 7 ------- device/{scanner.rc => scannerqd.rc} | 4 ++-- device/{scanner.vcxproj => scannerqd.vcxproj} | 7 ++++--- ...proj.filters => scannerqd.vcxproj.filters} | 2 +- lang/{lang.def => yuyanbao.def} | 2 +- lang/{lang.vcxproj => yuyanbao.vcxproj} | 20 +++++++++---------- ...xproj.filters => yuyanbao.vcxproj.filters} | 2 +- sane/resource.h | 2 +- sane/sane.vcxproj.user | 4 ---- sane/{sane.def => sanexy.def} | 0 sane/{sane.rc => sanexy.rc} | 4 ++-- sane/{sane.vcxproj => sanexy.vcxproj} | 19 +++++++++--------- ...vcxproj.filters => sanexy.vcxproj.filters} | 4 ++-- sln/hgscanner.sln | 15 +++++++++++--- sln/movlib.bat | 12 +++++++++++ twain/load_sane.cpp | 2 +- twain/twain/huagaods.cpp | 16 +++++++++++++++ 20 files changed, 89 insertions(+), 60 deletions(-) delete mode 100644 device/scanner.vcxproj.user rename device/{scanner.rc => scannerqd.rc} (95%) rename device/{scanner.vcxproj => scannerqd.vcxproj} (99%) rename device/{scanner.vcxproj.filters => scannerqd.vcxproj.filters} (99%) rename lang/{lang.def => yuyanbao.def} (94%) rename lang/{lang.vcxproj => yuyanbao.vcxproj} (94%) rename lang/{lang.vcxproj.filters => yuyanbao.vcxproj.filters} (97%) delete mode 100644 sane/sane.vcxproj.user rename sane/{sane.def => sanexy.def} (100%) rename sane/{sane.rc => sanexy.rc} (99%) rename sane/{sane.vcxproj => sanexy.vcxproj} (95%) rename sane/{sane.vcxproj.filters => sanexy.vcxproj.filters} (98%) create mode 100644 sln/movlib.bat diff --git a/build_base.bat b/build_base.bat index 6f27143..1f55f27 100644 --- a/build_base.bat +++ b/build_base.bat @@ -100,18 +100,18 @@ rem ---------------------------------------------------------------------------- mkdir %LIB_PATH% mkdir %COMMON_LIB_PATH% -MSBuild.exe "%~dp0\lang\lang.vcxproj" /p:Configuration=Release /p:Platform=%CPU% /p:IntDir=%TMP_PATH%\lang\ /p:OutDir=%BIN_PATH%\ +MSBuild.exe "%~dp0\lang\yuyanbao.vcxproj" /p:Configuration=Release /p:Platform=%CPU% /p:IntDir=%TMP_PATH%\lang\ /p:OutDir=%BIN_PATH%\ if %ERRORLEVEL% neq 0 goto end -call :move_libs %BIN_PATH% lang %LIB_PATH% -copy /y %LIB_PATH%\lang.lib %COMMON_LIB_PATH% -MSBuild.exe "%~dp0\device\scanner.vcxproj" /p:Configuration=Release /p:Platform=%CPU% /p:IntDir=%TMP_PATH%\scanner\ /p:OutDir=%BIN_PATH%\ +call :move_libs %BIN_PATH% yuyanbao %LIB_PATH% +copy /y %LIB_PATH%\yuyanbao.lib %COMMON_LIB_PATH% +MSBuild.exe "%~dp0\device\scannerqd.vcxproj" /p:Configuration=Release /p:Platform=%CPU% /p:IntDir=%TMP_PATH%\scanner\ /p:OutDir=%BIN_PATH%\ if %ERRORLEVEL% neq 0 goto end -call :move_libs %BIN_PATH% scanner %LIB_PATH% -copy /y %LIB_PATH%\scanner.lib %COMMON_LIB_PATH% -MSBuild.exe "%~dp0\sane\sane.vcxproj" /p:Configuration=Release /p:Platform=%CPU% /p:IntDir=%TMP_PATH%\sane\ /p:OutDir=%BIN_PATH%\ +call :move_libs %BIN_PATH% scannerqd %LIB_PATH% +copy /y %LIB_PATH%\scannerqd.lib %COMMON_LIB_PATH% +MSBuild.exe "%~dp0\sane\sanexy.vcxproj" /p:Configuration=Release /p:Platform=%CPU% /p:IntDir=%TMP_PATH%\sane\ /p:OutDir=%BIN_PATH%\ if %ERRORLEVEL% neq 0 goto end -call :move_libs %BIN_PATH% sane %LIB_PATH% -copy /y %LIB_PATH%\sane.lib %COMMON_LIB_PATH% +call :move_libs %BIN_PATH% sanexy %LIB_PATH% +copy /y %LIB_PATH%\sanexy.lib %COMMON_LIB_PATH% goto end REM move_libs src_dir src_name dst_dir diff --git a/device/device.def b/device/device.def index 08c38d1..d38e125 100644 --- a/device/device.def +++ b/device/device.def @@ -1,4 +1,4 @@ -LIBRARY scanner +LIBRARY scannerqd EXPORTS hg_scanner_initialize hg_scanner_uninitialize diff --git a/device/resource.h b/device/resource.h index ac4a468..645babf 100644 --- a/device/resource.h +++ b/device/resource.h @@ -1,8 +1,9 @@ //{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by scanner.rc +// Microsoft Visual C++ ɵİļ +// scannerqd.rc ʹ +// -// ¶һĬֵ +// Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS diff --git a/device/scanner.vcxproj.user b/device/scanner.vcxproj.user deleted file mode 100644 index 52fecfc..0000000 --- a/device/scanner.vcxproj.user +++ /dev/null @@ -1,7 +0,0 @@ - - - - C:\Program Files\HuaGoScan\HuaGoScan.exe - WindowsLocalDebugger - - \ No newline at end of file diff --git a/device/scanner.rc b/device/scannerqd.rc similarity index 95% rename from device/scanner.rc rename to device/scannerqd.rc index dbb9e78..a58efd0 100644 --- a/device/scanner.rc +++ b/device/scannerqd.rc @@ -70,9 +70,9 @@ BEGIN VALUE "CompanyName", "ϢƼ޹˾" VALUE "FileDescription", "ɨӦó" VALUE "FileVersion", "4.40.17100.23069" - VALUE "InternalName", "scanner.dll" + VALUE "InternalName", "scannerqd.dll" VALUE "LegalCopyright", "Copyright (C) HUAGOScan 2023" - VALUE "OriginalFilename", "scanner.dll" + VALUE "OriginalFilename", "scannerqd.dll" VALUE "ProductName", "HUAGOScan" VALUE "ProductVersion", "4.40.17100.23069" END diff --git a/device/scanner.vcxproj b/device/scannerqd.vcxproj similarity index 99% rename from device/scanner.vcxproj rename to device/scannerqd.vcxproj index 8bff037..09f0085 100644 --- a/device/scanner.vcxproj +++ b/device/scannerqd.vcxproj @@ -22,7 +22,7 @@ 16.0 Win32Proj {9ed4b425-73e0-423e-9712-455e777481b4} - scanner + scannerqd 10.0 @@ -118,7 +118,8 @@ - copy "$(TargetPath)" C:\Windows\twain_32\HuagoTwain\ /Y + copy "$(TargetPath)" C:\Windows\twain_32\HuagoTwain\ /Y +$(SolutionDir)movlib.bat $(TargetName) $(PlatformTarget) huagao @@ -347,7 +348,7 @@ - + diff --git a/device/scanner.vcxproj.filters b/device/scannerqd.vcxproj.filters similarity index 99% rename from device/scanner.vcxproj.filters rename to device/scannerqd.vcxproj.filters index 0d1b377..74ac08b 100644 --- a/device/scanner.vcxproj.filters +++ b/device/scannerqd.vcxproj.filters @@ -453,7 +453,7 @@ - + 资源文件 diff --git a/lang/lang.def b/lang/yuyanbao.def similarity index 94% rename from lang/lang.def rename to lang/yuyanbao.def index a53cdd5..236842d 100644 --- a/lang/lang.def +++ b/lang/yuyanbao.def @@ -1,4 +1,4 @@ -LIBRARY lang +LIBRARY yuyanbao EXPORTS lang_initialize lang_get_supported_languages diff --git a/lang/lang.vcxproj b/lang/yuyanbao.vcxproj similarity index 94% rename from lang/lang.vcxproj rename to lang/yuyanbao.vcxproj index 060a9cf..c89688e 100644 --- a/lang/lang.vcxproj +++ b/lang/yuyanbao.vcxproj @@ -22,14 +22,14 @@ 16.0 Win32Proj {7776ab6d-6296-4f7a-a6ed-e9a4d6290dd9} - lang + yuyanbao 10.0 DynamicLibrary true - v143 + v142 Unicode @@ -42,7 +42,7 @@ DynamicLibrary true - v143 + v142 Unicode @@ -103,11 +103,11 @@ Windows true false - lang.def + yuyanbao.def - - + copy "$(TargetPath)" C:\Windows\twain_32\HuagoTwain\ /Y +$(SolutionDir)movlib.bat $(TargetName) $(PlatformTarget) huagao @@ -128,7 +128,7 @@ true true false - lang.def + yuyanbao.def @@ -148,7 +148,7 @@ Windows true false - lang.def + yuyanbao.def @@ -173,7 +173,7 @@ true true false - lang.def + yuyanbao.def @@ -202,7 +202,7 @@ - + diff --git a/lang/lang.vcxproj.filters b/lang/yuyanbao.vcxproj.filters similarity index 97% rename from lang/lang.vcxproj.filters rename to lang/yuyanbao.vcxproj.filters index aed7fe8..289ff8c 100644 --- a/lang/lang.vcxproj.filters +++ b/lang/yuyanbao.vcxproj.filters @@ -43,7 +43,7 @@ - + 源文件 diff --git a/sane/resource.h b/sane/resource.h index f67dbaa..1b48766 100644 --- a/sane/resource.h +++ b/sane/resource.h @@ -1,6 +1,6 @@ //{{NO_DEPENDENCIES}} // Microsoft Visual C++ ɵİļ -// sane.rc ʹ +// sanexy.rc ʹ // #define IDCANCEL2 3 #define IDD_INDICATOR 101 diff --git a/sane/sane.vcxproj.user b/sane/sane.vcxproj.user deleted file mode 100644 index 88a5509..0000000 --- a/sane/sane.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/sane/sane.def b/sane/sanexy.def similarity index 100% rename from sane/sane.def rename to sane/sanexy.def diff --git a/sane/sane.rc b/sane/sanexy.rc similarity index 99% rename from sane/sane.rc rename to sane/sanexy.rc index 47ade48..253f075 100644 --- a/sane/sane.rc +++ b/sane/sanexy.rc @@ -367,9 +367,9 @@ BEGIN VALUE "CompanyName", "ϺоƼ޹˾" VALUE "FileDescription", "оɨӦó" VALUE "FileVersion", "4.37.20000.23034" - VALUE "InternalName", "sane.dll" + VALUE "InternalName", "sanexy.dll" VALUE "LegalCopyright", "Copyright (C) MICROTEKScan 2023" - VALUE "OriginalFilename", "sane.dll" + VALUE "OriginalFilename", "sanexy.dll" VALUE "ProductName", "MICROTEKScan" VALUE "ProductVersion", "4.37.20000.23034" END diff --git a/sane/sane.vcxproj b/sane/sanexy.vcxproj similarity index 95% rename from sane/sane.vcxproj rename to sane/sanexy.vcxproj index 8be8fd2..8e54d3e 100644 --- a/sane/sane.vcxproj +++ b/sane/sanexy.vcxproj @@ -22,9 +22,9 @@ 16.0 Win32Proj {6eec8a02-7f98-4422-8ed6-2434d43bd1e1} - sane + sanexy 10.0 - sane + sanexy @@ -113,12 +113,13 @@ Console true %(AdditionalDependencies) - $(ProjectDir)sane.def + $(ProjectDir)sanexy.def - copy "$(TargetPath)" C:\Windows\twain_32\HuagoTwain\$(TargetName) /y + copy "$(TargetPath)" C:\Windows\twain_32\HuagoTwain\ /Y +$(SolutionDir)movlib.bat $(TargetName) $(PlatformTarget) huagao @@ -139,7 +140,7 @@ true true %(AdditionalDependencies) - $(ProjectDir)sane.def + $(ProjectDir)sanexy.def UseLinkTimeCodeGeneration @@ -160,7 +161,7 @@ Console true scanner.lib;%(AdditionalDependencies) - $(ProjectDir)sane.def + $(ProjectDir)sanexy.def @@ -184,7 +185,7 @@ true true scanner.lib;%(AdditionalDependencies) - $(ProjectDir)sane.def + $(ProjectDir)sanexy.def UseLinkTimeCodeGeneration @@ -243,13 +244,13 @@ - + - + diff --git a/sane/sane.vcxproj.filters b/sane/sanexy.vcxproj.filters similarity index 98% rename from sane/sane.vcxproj.filters rename to sane/sanexy.vcxproj.filters index 73d0df0..d1fe46f 100644 --- a/sane/sane.vcxproj.filters +++ b/sane/sanexy.vcxproj.filters @@ -163,7 +163,7 @@ - + 源文件 @@ -171,7 +171,7 @@ - + 资源文件 diff --git a/sln/hgscanner.sln b/sln/hgscanner.sln index 9b65298..c34f734 100644 --- a/sln/hgscanner.sln +++ b/sln/hgscanner.sln @@ -3,17 +3,26 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.33214.272 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sane", "..\sane\sane.vcxproj", "{6EEC8A02-7F98-4422-8ED6-2434D43BD1E1}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sanexy", "..\sane\sanexy.vcxproj", "{6EEC8A02-7F98-4422-8ED6-2434D43BD1E1}" + ProjectSection(ProjectDependencies) = postProject + {9ED4B425-73E0-423E-9712-455E777481B4} = {9ED4B425-73E0-423E-9712-455E777481B4} + EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scanner", "..\device\scanner.vcxproj", "{9ED4B425-73E0-423E-9712-455E777481B4}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "scannerqd", "..\device\scannerqd.vcxproj", "{9ED4B425-73E0-423E-9712-455E777481B4}" + ProjectSection(ProjectDependencies) = postProject + {7776AB6D-6296-4F7A-A6ED-E9A4D6290DD9} = {7776AB6D-6296-4F7A-A6ED-E9A4D6290DD9} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "twain", "..\twain\twain.vcxproj", "{C3B47CE2-27CE-4509-AB59-3C0F194F0FCE}" + ProjectSection(ProjectDependencies) = postProject + {6EEC8A02-7F98-4422-8ED6-2434D43BD1E1} = {6EEC8A02-7F98-4422-8ED6-2434D43BD1E1} + EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "setup", "setup", "{F6774650-403F-476C-8373-2EA8D4AF06FF}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hgsetver", "hgsetver\hgsetver.vcxproj", "{A7528596-FBA2-4FFF-8649-C8D0EEBC6554}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lang", "..\lang\lang.vcxproj", "{7776AB6D-6296-4F7A-A6ED-E9A4D6290DD9}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yuyanbao", "..\lang\yuyanbao.vcxproj", "{7776AB6D-6296-4F7A-A6ED-E9A4D6290DD9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/sln/movlib.bat b/sln/movlib.bat new file mode 100644 index 0000000..f5aa63d --- /dev/null +++ b/sln/movlib.bat @@ -0,0 +1,12 @@ +# movlib proj-name cpu oem + +set NAME=%1 +set CPU=%2 +set OEM=%3 +set SRCDIR=%~dp0\..\..\release\win\%CPU%\OEM\%OEM%\ +set DSTDIR=%~dp0\..\..\sdk\lib\win\%CPU%\OEM\%OEM%\ + +mkdir "%DSTDIR%" +move /y "%SRCDIR%\%NAME%.exp" "%DSTDIR%" +move /y "%SRCDIR%\%NAME%.lib" "%DSTDIR%" +move /y "%SRCDIR%\%NAME%.pdb" "%DSTDIR%" diff --git a/twain/load_sane.cpp b/twain/load_sane.cpp index a82595a..c9327a1 100644 --- a/twain/load_sane.cpp +++ b/twain/load_sane.cpp @@ -147,7 +147,7 @@ namespace load_sane_util sane_path = reg_get_app_installing_path(®_path); if (!sane_path.empty()) { - sane_path += L"\\sane.dll"; + sane_path += /*L"\\sane.dll";*/ L"\\" + m2u(MODULE_NAME_SANE, CP_UTF8); load_dll(sane_path.c_str(), &sane_module); if (sane_module) { diff --git a/twain/twain/huagaods.cpp b/twain/twain/huagaods.cpp index 340b508..2da7abb 100644 --- a/twain/twain/huagaods.cpp +++ b/twain/twain/huagaods.cpp @@ -601,6 +601,20 @@ static void copy_type(std::string& to, Str64 from) { to = load_sane_util::ansi2utf8(from.data()); } +static std::wstring scanner_status_desc(int ss) +{ +#define RETURN_IF_MATCH(v) \ + if(ss == v) \ + return L###v; + + RETURN_IF_MATCH(SCANNER_STATUS_NOT_INIT); + RETURN_IF_MATCH(SCANNER_STATUS_READY); + RETURN_IF_MATCH(SCANNER_STATUS_SCAN_1); + RETURN_IF_MATCH(SCANNER_STATUS_SCANNING); + RETURN_IF_MATCH(SCANNER_STATUS_STOPPED); + + return std::move(L"unknown statu " + std::to_wstring(ss)); +} template bool list_value_at(std::list& lst, int ind, T& t) @@ -1060,6 +1074,8 @@ Result huagao_ds::identityOpenDs(const Identity& id) } Result huagao_ds::identityCloseDs(const Identity&) { + load_sane_util::to_log(1, L"identityCloseDs, scanner status is '%s'\r\n", scanner_status_desc(scanner_status_).c_str()); + if (notify_close_thread_.get() && notify_close_thread_->joinable()) notify_close_thread_->join(); From ee355587eda9929e2f17ef25b762093ff5a1f929 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Fri, 20 Oct 2023 11:31:36 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=94=B9=E5=90=8D?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E8=B0=83=E6=95=B4=E7=89=88=E6=9C=AC=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=B5=84=E6=BA=90=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sln/Release/hgsetver.exe | Bin 84992 -> 84992 bytes sln/hgsetver/hgsetver.cpp | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sln/Release/hgsetver.exe b/sln/Release/hgsetver.exe index d0a612a638258b949e6535902451f94b0c26b859..f3eacc5099176ed928d8c58e91c5f8478e0a825f 100644 GIT binary patch delta 6131 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 n@|Zn&o=T6+sYXMOeZe9Hd-TE!bQ diff --git a/sln/hgsetver/hgsetver.cpp b/sln/hgsetver/hgsetver.cpp index 8d68f93..80fda1e 100644 --- a/sln/hgsetver/hgsetver.cpp +++ b/sln/hgsetver/hgsetver.cpp @@ -1373,12 +1373,12 @@ static bool set_ver(const wchar_t* file, oem vendor, bool x86, int pid, int main //if (!rc::change_vcxproj_predefine(rcf.c_str(), vendor)) // std::wcout << "change predefines failed: " << rcf.c_str() << std::endl; - rcf = base + L"\\..\\sane\\sane.rc"; + rcf = base + L"\\..\\sane\\sanexy.rc"; STR_SIMPLIFY_PATH(rcf); if (!rc::set_rc_ver(rcf.c_str(), main, sub, build, patch, cn.c_str(), scn.c_str(), vs.c_str())) std::wcout << "change version failed: " << rcf.c_str() << std::endl; - rcf = base + L"\\..\\sane\\sane.def"; + rcf = base + L"\\..\\sane\\sanexy.def"; STR_SIMPLIFY_PATH(rcf); if (!rc::change_file(rcf.c_str(), ¶m, rc::change_sane_def)) std::wcout << "change exporting-definition failed: " << rcf.c_str() << std::endl; @@ -1388,7 +1388,7 @@ static bool set_ver(const wchar_t* file, oem vendor, bool x86, int pid, int main //if (!rc::change_vcxproj_predefine(rcf.c_str(), vendor)) // std::wcout << "change predefines failed: " << rcf.c_str() << std::endl; - rcf = base + L"\\..\\device\\scanner.rc"; + rcf = base + L"\\..\\device\\scannerqd.rc"; STR_SIMPLIFY_PATH(rcf); if (!rc::set_rc_ver(rcf.c_str(), main, sub, build, patch, cn.c_str(), scn.c_str(), vs.c_str())) std::wcout << "change version failed: " << rcf.c_str() << std::endl; From 44273cc704d3c51580d72ed963547c4395365f59 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Fri, 20 Oct 2023 12:25:54 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E5=88=A0=E9=99=A464=E4=BD=8D=E4=B8=8B?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=9A=84scanner=E4=BE=9D=E8=B5=96=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sane/sanexy.vcxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sane/sanexy.vcxproj b/sane/sanexy.vcxproj index 8e54d3e..94a4024 100644 --- a/sane/sanexy.vcxproj +++ b/sane/sanexy.vcxproj @@ -160,7 +160,7 @@ $(SolutionDir)movlib.bat $(TargetName) $(PlatformTarget) huagao Console true - scanner.lib;%(AdditionalDependencies) + %(AdditionalDependencies) $(ProjectDir)sanexy.def @@ -184,7 +184,7 @@ $(SolutionDir)movlib.bat $(TargetName) $(PlatformTarget) huagao true true true - scanner.lib;%(AdditionalDependencies) + %(AdditionalDependencies) $(ProjectDir)sanexy.def UseLinkTimeCodeGeneration