From 91c893281cc06e4085ccd1044547b4a4f636bee5 Mon Sep 17 00:00:00 2001 From: masayume <1936714878@qq.com> Date: Tue, 1 Dec 2020 11:15:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A6=81=E7=94=A8=E9=BB=91=E7=99=BD=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8A=E4=BC=A0UV=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- huagao/CAboutDlg.cpp | 10 ++++- huagao/CBasicPage.cpp | 9 +++++ huagao/CMakeLists.txt | 2 +- huagao/Device/G400ScanConfig.cpp | 1 + huagao/Device/ImageMatQueue.cpp | 38 +++++++++++++----- huagao/Device/ImageMatQueue.h | 2 +- huagao/Device/PublicFunc.cpp | 4 +- huagao/G400ScanConfig.h | 57 ++++++++++++++------------- huagao/ImageProcess/ImageApplyUV.cpp | 8 ++-- huagao/bitmap1.bmp | Bin 0 -> 1270 bytes huagao/huagaods.cpp | 16 ++++++-- huagao/huagaotwds.rc | Bin 36298 -> 36420 bytes huagao/icon_rwlogo.bmp | Bin 0 -> 134606 bytes huagao/icon_rwlogo.png | Bin 0 -> 17586 bytes huagao/resource.h | Bin 11354 -> 11534 bytes huagao/stdafx.h | Bin 5132 -> 6816 bytes 16 files changed, 96 insertions(+), 51 deletions(-) create mode 100644 huagao/bitmap1.bmp create mode 100644 huagao/icon_rwlogo.bmp create mode 100644 huagao/icon_rwlogo.png diff --git a/huagao/CAboutDlg.cpp b/huagao/CAboutDlg.cpp index e202e55..4d77cbe 100644 --- a/huagao/CAboutDlg.cpp +++ b/huagao/CAboutDlg.cpp @@ -50,9 +50,15 @@ BOOL CAboutDlg::OnInitDialog() SetDlgItemText(IDC_LBDERIVERVERSON, HG_VERSION_INFO); SetDlgItemText(IDC_LBCOMPANY, LIMIT_INFO); -#ifndef MAKEHUAGAO - GetDlgItem(IDC_PICABOUTHUAGO)->ShowWindow(FALSE); + CStatic* pStatic = (CStatic*)GetDlgItem(IDC_PICABOUTHUAGO); +#ifdef MAKEHUAGAO + //GetDlgItem(IDC_PICABOUTHUAGO)->ShowWindow(true); + HBITMAP hBitmap = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BMPABOUTDLG)); +#else defined MAKERTW + HBITMAP hBitmap = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BMPRHW)); #endif + pStatic->ModifyStyle(0xF, SS_BITMAP | SS_CENTERIMAGE); + pStatic->SetBitmap(hBitmap); SetDlgItemText(IDC_LBDESIGNERVALUE, COMPANY_NAME); SetDlgItemText(IDC_LBCOMPANYADDRESS, COMPANY_ADDRESS); return TRUE; // return TRUE unless you set the focus to a control diff --git a/huagao/CBasicPage.cpp b/huagao/CBasicPage.cpp index 46fcff6..1ecb23a 100644 --- a/huagao/CBasicPage.cpp +++ b/huagao/CBasicPage.cpp @@ -191,6 +191,15 @@ void CBasicPage::updateCmbDuplex(BOOL insert) int tmp_duplexindex = m_cmBoxDuplex->GetCurSel(); int tmp_resindex = m_cmBoxResultion->GetCurSel(); int totalcount = m_cmBoxDuplex->GetCount(); + if (tmp_colorindex == 2) + { + ((CButton*)(this->GetDlgItem(IDC_CKBENABLEUV)))->SetCheck(false); + ((CButton*)(this->GetDlgItem(IDC_CKBENABLEUV)))->EnableWindow(false); + } + else + { + ((CButton*)(this->GetDlgItem(IDC_CKBENABLEUV)))->EnableWindow(true); + } if (tmp_colorindex == 0 && tmp_paperindex >= 18 && tmp_resindex == 4) { m_cmBoxDuplex->DeleteString(4); m_cmBoxDuplex->SetCurSel(1); diff --git a/huagao/CMakeLists.txt b/huagao/CMakeLists.txt index c0ba53a..b04f664 100644 --- a/huagao/CMakeLists.txt +++ b/huagao/CMakeLists.txt @@ -105,4 +105,4 @@ set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/redistribute) set(huagaotwain_path "$<$:${LIBRARY_OUTPUT_PATH}\\Debug\\huagaotwain.dll>" "$<$:${LIBRARY_OUTPUT_PATH}\\Release\\huagaotwain.dll>") string(REPLACE "/" "\\" huagaotwain_path ${huagaotwain_path}) -add_custom_command(TARGET huagaotwain POST_BUILD COMMAND copy ${huagaotwain_path} $ENV{windir}\\twain_32\\huagoscan\\huagaotwain.ds) \ No newline at end of file +#add_custom_command(TARGET huagaotwain POST_BUILD COMMAND copy ${huagaotwain_path} $ENV{windir}\\twain_32\\huagoscan\\huagaotwain.ds) \ No newline at end of file diff --git a/huagao/Device/G400ScanConfig.cpp b/huagao/Device/G400ScanConfig.cpp index e21033f..47d6bf0 100644 --- a/huagao/Device/G400ScanConfig.cpp +++ b/huagao/Device/G400ScanConfig.cpp @@ -1,3 +1,4 @@ +#pragma once #include "G400ScanConfig.h" G400ScanConfig::G400ScanConfig(GScanCap& gcap) diff --git a/huagao/Device/ImageMatQueue.cpp b/huagao/Device/ImageMatQueue.cpp index 656dd05..edb82aa 100644 --- a/huagao/Device/ImageMatQueue.cpp +++ b/huagao/Device/ImageMatQueue.cpp @@ -164,10 +164,10 @@ void ImageMatQueue::setparam(const GScanCap& param) m_iaList.push_back(shared_ptr< CImageApply>(apply)); } - if (scanParam.en_fold) - { - m_iaList.push_back(shared_ptr(new CImageApplyConcatenation(CImageApplyConcatenation::horizontal))); - } + //if (scanParam.en_fold) + //{ + // m_iaList.push_back(shared_ptr(new CImageApplyConcatenation(CImageApplyConcatenation::horizontal))); + //} if (param.imageRotateDegree != 0.0 || param.is_backrotate180 || param.is_autotext) { @@ -186,7 +186,13 @@ void ImageMatQueue::setparam(const GScanCap& param) TCHAR szIniFile[MAX_PATH] = { 0 }; SHGetSpecialFolderPath(NULL, szIniFile, CSIDL_WINDOWS, TRUE); +#ifdef MAKEHUAGAO _tcscat(szIniFile, _T("\\twain_32\\HuaGoScan\\tessdata")); +#else defined MAKERTW + _tcscat(szIniFile, _T("\\twain_32\\RighTWayScan\\tessdata")); +#endif // MAKEHUGO + + int iLen = WideCharToMultiByte(CP_ACP, 0, szIniFile, -1, NULL, 0, NULL, NULL); char* chRtn = new char[iLen * sizeof(char)]; WideCharToMultiByte(CP_ACP, 0, szIniFile, -1, chRtn, iLen, NULL, NULL); @@ -239,6 +245,8 @@ void ImageMatQueue::proc() for (auto& buf : buffs) { ImreadModes rm = IMREAD_COLOR;//全部按照彩色解压 + if (scanParam.pixtype == 0) + rm = ImreadModes::IMREAD_GRAYSCALE; try { cv::Mat mat = cv::imdecode(*buf, rm); @@ -265,6 +273,8 @@ void ImageMatQueue::proc() for (auto& buf : uvbuffers) { ImreadModes rm = IMREAD_COLOR;//全部按照彩色解压 + if (scanParam.pixtype == 0) + rm = ImreadModes::IMREAD_GRAYSCALE; try { cv::Mat mat = cv::imdecode(*buf, rm); @@ -290,7 +300,7 @@ void ImageMatQueue::proc() std::vector rects; std::vector angleResults; bool isDesaskew = false; - + for (int j = 0; j < m_iaList.size(); j++) { m_iaList[j]->apply(mats, scanParam.is_duplex); CImageApply* ptr = m_iaList[j].get(); @@ -300,9 +310,8 @@ void ImageMatQueue::proc() isDesaskew = dynamic_cast(ptr)->isDesaskew(); } else if (typeid(*ptr) == typeid(CImageApplyRotation)) - angleResults = dynamic_cast(ptr)->angleResults(); - } - + angleResults = dynamic_cast(ptr)->angleResults(); + } if (!m_uvMats.empty()) { //拼接原图和UV图 @@ -313,12 +322,22 @@ void ImageMatQueue::proc() break; } cv::Mat mergeOrgin_UV = ImageApplyUV::Apply(mats[j], m_uvMats[j], rects[j], isDesaskew, angleResults.size() > 0 ? angleResults[j] : 0); - //cv::imwrite("D:/pic/mergeOrgin_UV" + std::to_string(j) + ".bmp", mergeOrgin_UV); + //cv::imwrite("D:/0.bmp", mergeOrgin_UV); if (!mergeOrgin_UV.empty()) mats[j] = mergeOrgin_UV; + } m_uvMats.clear(); } + if (scanParam.en_fold) + { + CImageApplyConcatenation Concatenation; + if(scanParam.en_uv) + Concatenation= CImageApplyConcatenation(CImageApplyConcatenation::vertical); + else + Concatenation = CImageApplyConcatenation(CImageApplyConcatenation::horizontal); + Concatenation.apply(mats, scanParam.is_duplex); + } for (int i = 0; i < mats.size(); i++) { if (!scanParam.is_duplex && i == 1) { @@ -331,6 +350,7 @@ void ImageMatQueue::proc() IMat2Bmp idata; idata = scanParam.pixtype == 0 ? (IMat2Bmp)Mat2BmpBw(mats[i], scanParam.resolution_dst) : Mat2Bmp(mats[i], scanParam.resolution_dst); auto data = idata.getBmpDataBuffer(); + CStdioFile file; EnqueueBmpBuffer(data); } else diff --git a/huagao/Device/ImageMatQueue.h b/huagao/Device/ImageMatQueue.h index fc1f7eb..461b503 100644 --- a/huagao/Device/ImageMatQueue.h +++ b/huagao/Device/ImageMatQueue.h @@ -89,7 +89,7 @@ public: int pos = col % 8; int pix = *(imageData + row * mat.step1() + col); temp = 1 << (7 - pos); - if (pix == 255) + if (pix ==255) { *(binary + (height - row - 1) * m_lineByte + col / 8) |= temp ; } diff --git a/huagao/Device/PublicFunc.cpp b/huagao/Device/PublicFunc.cpp index 1d58500..b264a32 100644 --- a/huagao/Device/PublicFunc.cpp +++ b/huagao/Device/PublicFunc.cpp @@ -437,8 +437,8 @@ CString GetHidedlgPath() SHGetSpecialFolderPath(NULL, szIniFile, CSIDL_WINDOWS, TRUE); #ifdef MAKEHUAGAO _tcscat(szIniFile, _T("\\twain_32\\HuaGoScan\\hidedlg.exe")); -#else // MAKEHUAGAO - _tcscat(szIniFile, _T("\\twain_32\\ZhibenScan\\hidedlg.exe")); +#else defined MAKERTW + _tcscat(szIniFile, _T("\\twain_32\\RighTWayScan\\hidedlg.exe")); #endif int iLen = WideCharToMultiByte(CP_ACP, 0, szIniFile, -1, NULL, 0, NULL, NULL); char* chRtn = new char[iLen * sizeof(char)]; diff --git a/huagao/G400ScanConfig.h b/huagao/G400ScanConfig.h index 64386dc..175bdb2 100644 --- a/huagao/G400ScanConfig.h +++ b/huagao/G400ScanConfig.h @@ -3,32 +3,33 @@ #include "Device/PublicFunc.h" #include "Device/PaperSize.h" -class G400ScanConfig : - public IConfig -{ -public: - union Configuration - { - struct - { - unsigned int pageSize : 5; - unsigned int isColor : 1; - unsigned int dpi : 2; - unsigned int doubleFeeded : 1; - unsigned int enableUV : 1; - unsigned int enableLed : 1; - unsigned int reversed1 : 6; - unsigned int isCorrect : 1; - unsigned int dstHeight : 8; - unsigned int reversed2 : 6; - }params; - unsigned int value; - }; - G400ScanConfig(GScanCap& gcap); - virtual ~G400ScanConfig(); - virtual unsigned int GetData() override; -private: - Configuration cfg; - Device::PaperSize PaperSize; -}; +#pragma once +//class G400ScanConfig : +// public IConfig +//{ +//public: +// union Configuration +// { +// struct +// { +// unsigned int pageSize : 5; +// unsigned int isColor : 1; +// unsigned int dpi : 2; +// unsigned int doubleFeeded : 1; +// unsigned int enableUV : 1; +// unsigned int enableLed : 1; +// unsigned int reversed1 : 6; +// unsigned int isCorrect : 1; +// unsigned int dstHeight : 8; +// unsigned int reversed2 : 6; +// }params; +// unsigned int value; +// }; +// G400ScanConfig(GScanCap& gcap); +// virtual ~G400ScanConfig(); +// virtual unsigned int GetData() override; +//private: +// Configuration cfg; +// Device::PaperSize PaperSize; +//}; diff --git a/huagao/ImageProcess/ImageApplyUV.cpp b/huagao/ImageProcess/ImageApplyUV.cpp index c710074..d7e6068 100644 --- a/huagao/ImageProcess/ImageApplyUV.cpp +++ b/huagao/ImageProcess/ImageApplyUV.cpp @@ -55,11 +55,9 @@ void ImageApplyUV::Apply(cv::Mat& image, const cv::Mat& uv, int dpi, int thresh) cv::Mat ImageApplyUV::Apply(const cv::Mat& image, const cv::Mat& uv, const cv::RotatedRect& uvRoi, bool isDesaskew, int angle) { if (uvRoi.size.width == 0) return cv::Mat(); - cv::RotatedRect uvRoi_clone = uvRoi; cv::Mat dst = cv::Mat::zeros(image.rows > image.cols ? image.rows : (image.rows * 2), image.cols > image.rows ? image.cols : (image.cols * 2), image.type()); image.copyTo(dst(cv::Rect(0, 0, image.cols, image.rows))); - cv::Mat dst_uv = dst(cv::Rect(image.rows > image.cols ? image.cols : 0, image.rows > image.cols ? 0 : image.rows, image.cols, image.rows)); if (isDesaskew) { @@ -92,7 +90,6 @@ cv::Mat ImageApplyUV::Apply(const cv::Mat& image, const cv::Mat& uv, const cv::R dstTri[1] = cv::Point2f(0, 0); dstTri[2] = cv::Point2f(dst_uv.cols - 1, 0); } - cv::Mat warp_mat = cv::getAffineTransform(srcTri, dstTri); if (uv.channels() == 1 && dst_uv.channels() == 3) { @@ -101,7 +98,9 @@ cv::Mat ImageApplyUV::Apply(const cv::Mat& image, const cv::Mat& uv, const cv::R cv::cvtColor(uv_temp, dst_uv, cv::COLOR_GRAY2BGR); } else + { cv::warpAffine(uv, dst_uv, warp_mat, dst_uv.size()); + } } else { @@ -112,7 +111,6 @@ cv::Mat ImageApplyUV::Apply(const cv::Mat& image, const cv::Mat& uv, const cv::R roi_dst_right.width = cv::min(dst_uv.cols, uvBoundingRect.width); roi_dst_right.y = dst_uv.rows > uvBoundingRect.height ? (dst_uv.rows - uvBoundingRect.height) / 2 : 0; roi_dst_right.height = cv::min(dst_uv.rows, uvBoundingRect.height); - cv::Rect roi_uv_BoundingRect((uvBoundingRect.width - roi_dst_right.width) / 2, (uvBoundingRect.height - roi_dst_right.height) / 2, roi_dst_right.width, roi_dst_right.height); @@ -120,7 +118,7 @@ cv::Mat ImageApplyUV::Apply(const cv::Mat& image, const cv::Mat& uv, const cv::R if (uvCrop.channels() == 1 && dst_uv.channels() == 3) cv::cvtColor(uvCrop, uvCrop, cv::COLOR_GRAY2BGR); uvCrop.copyTo(dst_uv(roi_dst_right)); - } + } return dst; } diff --git a/huagao/bitmap1.bmp b/huagao/bitmap1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6e8e840620a27fb2fa28f68c860a5eaa5714167a GIT binary patch literal 1270 zcmZ?r{l>xo24z4}1BeZvn2`Y@(EybPD?%X}7#M(vp`ign0ZAZ};lP0dKpG_RAB-6O a{|B*v7zjZ^ApR&A4S~@R7!82|3IPD0SCat% literal 0 HcmV?d00001 diff --git a/huagao/huagaods.cpp b/huagao/huagaods.cpp index ecf2446..2b7f113 100644 --- a/huagao/huagaods.cpp +++ b/huagao/huagaods.cpp @@ -66,9 +66,15 @@ TWPP_ENTRY_MFC(HuagaoDs) static constexpr const Identity srcIdent( Version(3, 3, Language::English, Country::China, "v3.3.2.4"), DataGroup::Image, +#ifdef MAKEHUAGAO "HUAGO", "G300 Series", "HUAGOSCAN G300 UVTWAIN" +#else defined MAKERTW + "RIGHTWAY", + "G300 Series", + "RIGHTWAYSCAN G300 UVTWAIN" +#endif // MAKEHUAGAO #if defined(_MSC_VER) "" #elif defined(__GNUC__) @@ -378,6 +384,7 @@ Result HuagaoDs::eventProcess(const Identity&, Event& event) { // // QApplication::processEvents(); - TODO: needs more investigation; results in freeze when attempting to scan using old DSM // QApplication::sendPostedEvents(); guiTwain->SendMessage((UINT)(event.message())); + //guiTwain->PostMessage((UINT)(event.message())); } event.setMessage(Msg::Null); @@ -434,7 +441,8 @@ Result HuagaoDs::identityOpenDs(const Identity&) { bmInfo.biBitCount = m_scanparam->pixtype == 2 ? 24 : (m_scanparam->pixtype == 1 ? 8 : 0); m_iBitdepth = m_scanparam->pixtype == 2 ? 24 : (m_scanparam->pixtype == 1 ? 8 : 0); scanner->open(0x064B, 0x7823); - + //scanner->open(0x31c9, 0x8200); + //scanner->open(0x3072, 0x0300); if (!scanner->IsConnected()) { ShellExecute(NULL, TEXT("open"), GetHidedlgPath(), CString("201"), NULL, SW_HIDE); return checkDeviceOnline(); @@ -1104,6 +1112,8 @@ Result HuagaoDs::identityOpenDs(const Identity&) { return success(); case Msg::Set: { auto mech = data.currentItem(); + if(m_scanparam->pixtype==0) + return badValue(); m_scanparam->en_uv = mech; return success(); } @@ -2439,7 +2449,7 @@ Twpp::Result HuagaoDs::showTwainUI(Twpp::UserInterface& ui, bool bUiOnly) void HuagaoDs::DeviceEvent_callback(int eventID, void* usrdata) { HuagaoDs* This = (HuagaoDs*)usrdata; - This->onDeviceEvent(eventID); + //This->onDeviceEvent(eventID); } void HuagaoDs::onDeviceEvent(int eventID) @@ -2502,7 +2512,6 @@ Twpp::Result HuagaoDs::startScan() } scanner->ResetScanner(); - scanner->clear_hwerror(); scanner->config_params(*m_scanparam); //FileTools::write_log("D:\\2.txt", "is_autodiscradblank_normal = " + to_string(m_scanparam->is_autodiscradblank_normal) + " 222is_autodiscradblank_vince =" + to_string(m_scanparam->is_autodiscradblank_vince)); @@ -2523,6 +2532,7 @@ Twpp::Result HuagaoDs::startScan() guiIndicator->ShowWindow(SW_SHOWNORMAL); } scanner->Scanner_StartScan(m_scanparam->scannum); + if (bmpData.size() > 0) bmpData.clear(); diff --git a/huagao/huagaotwds.rc b/huagao/huagaotwds.rc index 2525f54b74e52c4af8867b024aa9885b13c06812..7e81466951115dc15e1a4b96ece5e385618eecef 100644 GIT binary patch delta 119 zcmX>#o9W0LrVVaMf=&$a3{DK53?U4@42}!|42F}_lk&xl7>pTo7%YKMhrx)!jKKm( zn=+VAKB#WESuXj7oUkW@3s4(Kt1nPf5Q7Ip_~ea^vXd7y8i{5yBs1hQyhw0R8rVVaMlMSTUCWko7O^!;+5jSNpWzb=;WH1AgMhpfFCP3Ph!D#Y9b;Hek N$uHzKH#8mL1^@ye5Yqqv diff --git a/huagao/icon_rwlogo.bmp b/huagao/icon_rwlogo.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0892cf7f6d21e2cad4c0b0c4137ee75eccd2fe2f GIT binary patch literal 134606 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 CQQa{B literal 0 HcmV?d00001 diff --git a/huagao/icon_rwlogo.png b/huagao/icon_rwlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7f7013a63eb585fd624c2de5c1b04b642eee4110 GIT binary patch literal 17586 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⋘Ga=A$ z*e)OA|Agx+P$X9g0@q-Qq`I1l>YCzEJC&MDEei7$F#$bHxBLA-?{ z{1Cj?^SMJE+CHhE;0W+jMYtESXhG*EtvJ+|r$`lh+`CM}Sit#4bf`l<#3ELs%;vFW zdOl#S$n@yaEy#SlNJC+-ST45PyPjT9`gKrNiw0$u zAAT&~JYptfXTFX>Shb&Fv=;IGwbr~@^DWJZOvv@Nt*iTTjgF^*P0HXJX*r!=Z}Kio zcUsPV9BIXLv)brJ7jtW#8BNYHAV={}4F0}64t2)4!e;PJAM2Q8wbs{HQn`@moo)qA zspeVKXabg+_Z>XwS!xzu&kAh^u8=9vIPq8jDG7*B3`BG*X$POWN$L?RLA?f&S0ol; zg97=v=dY{G`yG8W_Ev#6h;_H1jLQ!mRUw?yNY8)WGok3j&q~dPITh7)eev8DPjC;h&;TkCl5u~wM(z#V zX4?+F#G*ZV{P>an^DB0n>`mU{y^|ZI!hsX(~Fl{kD(a_rLwIuEY8bm|^e^zFVv zq~KU#W%CDP?%(L7El6ZvR6+&~wpYum3N9)u-nk~xodN7#NaH~`8}^J4&K{sXZiqCA z7_rBPVl~XGX!Imw;fb{E53y?^hQr{@Z^@a?+gMTor+H1K?5%EWY;=Ecog)v>Il1af zEZl2;MZ*HrAe$`D+*ViD=wI$?U#MZi-p3;`q0_uyU1C9QZ%Ym0Gy#I zQH15{#mbpO9qsd6yRCbrSdme)18PF}-z;6qE;F8)cbI<7HHq$z3ShwSsr6L_1Lqd+ zOlTr>dzWpAMyEXwyjLa=mgeW@zw8}9H5969YO3f7{x-cm)vNeuX~>}WN#(k&U6!{> zQbVWRUZ^*X8yC_%zkk4C%hD6)ggF8+Wqa-5GlwMzmd;TXy>%GRp_4d#Of=j}&8`rU zC;GHT5>FVarD)SbEJOg~kDf4LOm9obk)XF#A^IVFE!g>rWRp&M!;&SkOy~Ol)>h)vI{Spp1-bY5T`W>f#)(rE60G zK7$J_RJJig5|#`Gr_v?qROor)5xC@xJ}GRto%;}rqm07`bUxfxxq1H2ea@Z6ahAeD zvAjOmufdQL|8}&0;2%0uqt^(cc|O#!;Xr{{_%`a;ii2(NQc{_kM*!F0ySdz2aF{Mm z=-|rz0HkN%zP2Jaha|H96XcnQKG@n0J*XX!B`mEyt{ZfI7h3Z3pS3oHf3FCGFH)n< zViJ1|e4pGuQSiE6Li_HoYG~LNa0KV?(l!5WkYl=jY;Sj}LW~8dFtVQnq=dcu+qR4t zl+&Ybfk!fWKGd<{K;x=V_=Wt1%lKSbNzK~6Ct^L-qNz4bn^%3hWWi$@nFoz5OXFABdN<;SNGmzgW(uS!oSe{7t|3?0o{?b zqXbgxd9SL!%HW4O-o(rd5w3D@z<0n`DA|N;tFM2XR2*Ta65w=87k<4*{R}W(g9D$} z)rAb$Exe*j&BjU)3HMyU=$5Q~;2@To1I?!^c@_T@Ft@l##45c%(fv>ps>&-ef0A_m z9$O{Z;Xxi0omlsnjvIy}a_ zN6_)&zU-oU57WRqK;?Ug40hADq5I&$S9|K_&!g8QCecNBhJ_rT1muN1ANgBh9P>II z;~fikPgrdcgfv%bFq{gK2%v-_dZI+32SGOmx5S@ef=nK!hh&Tt~uGG=7574o5yowI{M+2mawn`#4lE*?CJF&G@F>=2* Z{y$pgNEb1lr3nB4002ovPDHLkV1k!ZHFp32 literal 0 HcmV?d00001 diff --git a/huagao/resource.h b/huagao/resource.h index 9733c6c34fa2cc8450f575e2149cfe5d48e0932f..b7bd228e3b240f0f9f97216feb07849de90c2116 100644 GIT binary patch delta 69 zcmcZ=(HFHLk8$!jel~7Th7bl{21kYf2E)k{nY0-VCog1`1E~Po}ewV`Jc7`BLK{;3o!ry diff --git a/huagao/stdafx.h b/huagao/stdafx.h index 4c2dcbc5d94344fb1cf7493e369852affb6c6641..327d9f42c75bca0fbaf7ee6217d31d264ddae417 100644 GIT binary patch delta 446 zcmeCtSYW#06N|7fgCm1CgDZmvLnx5t4#fVG6$Qj6Utky7EX69rGI<)OfF%}147?0n z49X0d3~3B045>g;fdPxE&4!$@jFT^M3QeBH^+XV2gFizsgEP<`KL-8D=Q%|uFX5g6 zQnA^CXBCsCGSI9XhGHP805vz0ArHt)K{7vxA%r1(vLUA}e-MKw(8(SkKG49($>p4p z7-Ba$Hv`2o8PXXt!0HkiDko3pda8*g26R+1Ln6>FeFij{$uqeZVwm8{0}?~E{XLI9 zvjKzQWJTV&LScF0!Eq&(MT}8_^>^x?#&TCpKF7O7Q7gAF#wz$}?3}>Tz`8uctc^|T mk;{Ue7<3to7z`N<7>t0L