From 14bdeda0899adfb4ebe23eb4320b9abab869d2d4 Mon Sep 17 00:00:00 2001 From: gb <741021719@qq.com> Date: Tue, 8 Aug 2023 12:00:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AF=AD=E8=A8=80=E5=8C=85wi?= =?UTF-8?q?ndows=E5=B9=B3=E5=8F=B0=E4=B8=8B=E6=B8=85=E7=90=86=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=EF=BC=9B=E8=B0=83=E6=95=B4usb=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E9=80=80=E5=87=BA=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- device/win_usb/win_usb.cpp | 11 ++++++----- lang/dllmain.cpp | 4 ++++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/device/win_usb/win_usb.cpp b/device/win_usb/win_usb.cpp index a27e1a0..5f03f8f 100644 --- a/device/win_usb/win_usb.cpp +++ b/device/win_usb/win_usb.cpp @@ -1205,6 +1205,12 @@ void usb_monitor::quit(void) { KillTimer(wnd_monitor_, usb_monitor::find_usb_timer_); run_ = false; + if (IsWindow(wnd_monitor_)) + { + PostMessage(wnd_monitor_, WM_QUIT, 0, 0); + Sleep(100); + } + if (handle_msg_.get()) { PostThreadMessageW(handle_msg_id_, WM_QUIT, 0, 0); @@ -1213,11 +1219,6 @@ void usb_monitor::quit(void) handle_msg_.reset(); } - if (IsWindow(wnd_monitor_)) - { - PostMessage(wnd_monitor_, WM_QUIT, 0, 0); - } - { std::lock_guard lock(lock_); for (auto& v : devices_) diff --git a/lang/dllmain.cpp b/lang/dllmain.cpp index daed8c8..3ce9c7f 100644 --- a/lang/dllmain.cpp +++ b/lang/dllmain.cpp @@ -1,6 +1,8 @@ // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" +extern void clear_language_data(void); + BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved @@ -11,7 +13,9 @@ BOOL APIENTRY DllMain( HMODULE hModule, case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: + break; case DLL_PROCESS_DETACH: + clear_language_data(); break; } return TRUE;