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 命名管道");