ec5f62670d2029fdee5b3e29a75d8611938d9357
- 版本校验:基座侧改用编译期常量 (ARX<<16)|SUB_ARX,不再调用运行时的 acrxGetApiVersion()。该函数由 rxapi.lib 的 acrxGetApiVersionImpl 提供, 是有状态实现(读写进程内全局),返回值随调用次数变化;AutoCAD 加载 ARX 时已调用过一次,导致基座值与 DLL 值不等,绝大多数 DLL 工具被拒绝注册。 - 新增 DLL 模块缓存:同一 DLL 全进程只 LoadLibrary 一次,后续工具复用句柄 并跳过版本校验。 - 文档锁:mcp_Tool_DllProxy::Execute 统一 lockDocument/unlockDocument, 修复 DLL 工具在 AutoCAD 应用上下文写数据库返回 eLockViolation (表现为 openWriteSpace 拿不到模型空间)的问题。 - 代理类不再 FreeLibrary 模块(改由模块缓存统一卸载),避免同一 DLL 的多个 工具重复释放、引用计数被打穿。 - 诊断日志精简为仅记录 arx_version/dll_version,且每次加载清空重写。 - 新增 verify_annotate.py:批注工具集运行时验证脚本(绘制/校验/改属性/清理)。
Languages
C++
74.7%
Python
16.2%
CMake
8.8%
C
0.2%