生成时间:2026-10-08
交付物:旧版本更新_修复后_v17b.e(未覆盖用户原旧版本更新_修复后.e)
之前两次吸附尝试都失败,但原因不同、且都不是「吸附这条路走不通」:
| 版本 | 方案 | 结果 | 根因 |
|---|---|---|---|
| v16 | SetParent + WS_CHILD 子窗口 | 一闪而过看不见 | 热血江湖是 D3D 每帧重绘整个客户区,普通 GDI 子窗口被压在渲染层下面——子窗口方案对 D3D 游戏天生无效 |
| v17 | 独立置顶 + 跟随 | F7 编译阶段崩 | 高度疑似:第一次在自有代码里引入 RECT 传址 DLL 命令(GetWindowRect_API/GetClientRect_API/IsIconic_API),黑月编译器解析炸 |
| v17_稳版 | 撤销吸附 | 编译稳 | 只保留 v15 去任务栏图标 |
结论:吸附方向(独立置顶浮层 + 跟随)是对的、对 D3D 有效;崩的是「自定义 RECT 传址 DLL 命令」这个写法。v17b 改用精易模块现成命令取代那三个自定义声明,从根上避开崩溃触发器。
界面_WS_EX_TOPMOST = "8"。SetWindowLong + 置窗口位置大小 机制给助手窗口加上 WS_EX_TOPMOST,浮在游戏之上。创建定时器 (MainDialogWnd.取窗口句柄 (), 9973, 200, &吸附定时回调)(复用工程里已稳定的 9971 日志定时器同一模式)。吸附定时回调 子程序里:窗口_取位置和大小 (全局_窗口句柄) → 得到游戏窗口屏幕坐标(左/顶/宽/高);窗口_取位置和大小 (助手句柄) → 得到助手自身宽高;窗口_置位置和大小 (助手句柄, 游戏.左边, 游戏.顶边+游戏.高度-助手.高度, , ) → 贴到游戏窗口左下角(左对齐、下对齐),保持助手原有宽高。窗口_是否最小化 (全局_窗口句柄) → 游戏最小化时隐藏助手,恢复后按用户意图重新显示。吸附_用户可见:记录 Home 键表达的显隐意图,游戏最小化隐藏、恢复后据此恢复。显示窗口 在切换 MainDialogWnd.可视 的同时,把 吸附_用户可见 同步成新意图,与跟随逻辑互不打架。窗口_取位置和大小/窗口_是否最小化/窗口_置位置和大小),本工程一直加载这些模块、能正常编译。RECT 传址:v17 崩的最可能元凶就是自定义 RECT, 传址 DLL 参数,这次彻底不碰。吸附定时回调 里所有判断都拆成单层 .如果真,没有「且/或」链(黑月对长布尔链解析易死循环卡死)。_check_blocks.py:控制块配对 0 处_check_decls.py:69 数组 / 0 误声明(新增的 吸附_扩展样式/游戏/助手/新顶边 标量、吸附_用户可见 标量均干净)旧版本更新_修复后_v17b.e(2,883,436 B)GetWindowRect_API/RECT 传址 残留旧版本更新_修复后.e 时间戳未变(未被覆盖)D:/AI空间/rxjh/旧版本更新_修复后_v17b.e F7 编译,覆盖各机器 test.dll,别点「旧版覆盖」。WS_EX_TOPMOST 置顶块或定时器/结构体赋值,范围极窄。config\Default.ini [config] 没有写 任务栏图标=1(那只会恢复任务栏图标,不影响吸附);再看机器上的 config\log\<角色名>.txt 里有没有 【界面】 开头的日志。