Commit Graph
5 Commits
Author SHA1 Message Date
gjm 3b1cc88262 fix(mcp_frame): 补齐版本校验源码(上一提交因文件名大小写漏带)
2fa27b1 只带上了文档,未纳入源文件。此处补上 mcp_ConfigParser.cpp 的实际改动:
- acrxGetApiVersion 返回值按 (major<<16)|minor 拆分大/小版本;
- 默认只比大版本(同一大版本内二进制兼容);
- 例外 R24.3 与 R24.0~R24.2 因 MSVC toolset 不同,按 minor>=3 分组判定。
2026-10-09 23:42:31 +08:00
gjm ec5f62670d fix(mcp_frame): 修复 c++_dll 工具大量注册失败与写库被文档锁拦截
- 版本校验:基座侧改用编译期常量 (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:批注工具集运行时验证脚本(绘制/校验/改属性/清理)。
2026-10-09 22:31:49 +08:00
gjm c0966ad334 refactor
重构以加强 abi 的兼容性
2026-10-03 00:24:32 +08:00
gjm a7eaa8483f add
增加了 plugin 工程
2026-10-02 23:43:18 +08:00
gjm cf87cfe93d refactor
修改了目录和部分源文件名称
2026-10-02 21:02:40 +08:00