From eaa61e665aa733c0cc82b99ebcef9b5c6ac2d5ed Mon Sep 17 00:00:00 2001 From: BTMuli Date: Sat, 17 Jan 2026 17:05:23 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E7=A7=BB=E5=8A=A8dll=E4=BB=A5?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E8=B7=AF=E5=BE=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #206 --- src-tauri/src/main.rs | 7 +------ src-tauri/src/yae/inject.rs | 1 - src-tauri/src/yae/mod.rs | 11 +++++++++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index cb2ed553..f93437bd 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -25,12 +25,7 @@ fn main() { }, )); #[cfg(target_os = "windows")] - { - enable_dpi_v2(); - unsafe { - std::env::set_var("RUST_BACKTRACE", "1"); - } - } + enable_dpi_v2(); #[cfg(target_os = "linux")] unsafe { // Not unsafe if you don't use edition 2024 diff --git a/src-tauri/src/yae/inject.rs b/src-tauri/src/yae/inject.rs index ba6a67c4..b63d4620 100644 --- a/src-tauri/src/yae/inject.rs +++ b/src-tauri/src/yae/inject.rs @@ -187,7 +187,6 @@ pub fn find_module_base(pid: u32, dll_name: &str) -> Option { loop { let len = me32.szModule.iter().position(|&c| c == 0).unwrap_or(me32.szModule.len()); let name = String::from_utf16_lossy(&me32.szModule[..len]); - eprintln!("Enumerated module: {}", name); // 精确文件名比较或后缀比较(大小写不敏感) if name.eq_ignore_ascii_case(dll_name) diff --git a/src-tauri/src/yae/mod.rs b/src-tauri/src/yae/mod.rs index b68c3d73..f55690a9 100644 --- a/src-tauri/src/yae/mod.rs +++ b/src-tauri/src/yae/mod.rs @@ -11,7 +11,7 @@ use pt_ac::parse_achi_list; use pt_store::parse_store_list; use serde_json::Value; use std::collections::HashMap; -use std::fs::File; +use std::fs::{self, File}; use std::io::{self, Read, Write}; use std::os::windows::io::{FromRawHandle, RawHandle}; use std::sync::Arc; @@ -74,7 +74,14 @@ pub fn call_yae_dll( uid: String, ticket: Option, ) -> Result<(), String> { - let dll_path = app_handle.path().resource_dir().unwrap().join("resources/YaeAchievementLib.dll"); + let dll_local_path = + app_handle.path().resource_dir().unwrap().join("resources/YaeAchievementLib.dll"); + let dll_path = app_handle.path().app_config_dir().unwrap().join("YaeAchievementLib.dll"); + // -1. 移动 dll 到应用目录以解决权限问题 + match fs::copy(&dll_local_path, &dll_path) { + Ok(_) => println!("✅ DLL 已成功复制到 {:?}", dll_path), + Err(e) => eprintln!("❌ 复制 DLL 失败: {:?}", e), + } dbg!(&dll_path); // 0. 创建 YaeAchievementPipe 的 命名管道,获取句柄 dbg!("开始启动 YaeAchievementPipe 命名管道");