refactor: 水池截面中转文件改用 CoreTools::getTempFilePath #33

Merged
gjm merged 3 commits from company-desktop-computer/fix/pool-section-sat-name AGit into main 2026-10-22 10:09:15 +08:00
Collaborator

删除 Pool3dCmd/PoolSectionTemp.h,JMDBDlg、JMSJDlg、HZQTDlg 共 7 处
改为 CoreTools::getTempFilePath(T("JMSJ"), _T(".sat"), 目录)。

同时修 getTempFilePath 自身的问题:

  • 传了有效父目录时 sParentPath 没有赋值,会拼出 "\JMSJ_xxx.sat"
  • 父目录为空时仍对 pszParentPath 调 _taccess,参数可能是 NULL
  • return sPath(); 语法错误
  • objId 用 %lu 格式化 Adesk::ULongPtr,64 位下会截断,改 %I64u

temp-file-naming.md 同步改为介绍这个通用函数。

删除 Pool3dCmd/PoolSectionTemp.h,JMDBDlg、JMSJDlg、HZQTDlg 共 7 处 改为 CoreTools::getTempFilePath(_T("JMSJ_"), _T(".sat"), 目录)。 同时修 getTempFilePath 自身的问题: - 传了有效父目录时 sParentPath 没有赋值,会拼出 "\JMSJ_xxx.sat" - 父目录为空时仍对 pszParentPath 调 _taccess,参数可能是 NULL - return sPath(); 语法错误 - objId 用 %lu 格式化 Adesk::ULongPtr,64 位下会截断,改 %I64u temp-file-naming.md 同步改为介绍这个通用函数。
company-desktop-computer added 3 commits 2026-10-22 10:06:52 +08:00
1. AcDbX3dSolid::CreateFromSat 的 temp\temp.sat 改为
   temp_<pid>_<原子序号>.sat,用完 DeleteFile。原来固定名且从不删除,
   两个 CAD 实例同时从 SAT 重建时会互相覆盖。

2. DGJM.sat 的读取统一改成「分配时补终止符 + 按实际读到的长度赋值」:
   new char[n] 之后直接赋给 CString 会把未初始化内存当字符串读到终止符,
   现在 new char[n+1] + memset,再用 CString(pszTxt, nRead) 明确长度。
   涉及 AcDbX3dSolid、AecDbEarthWormFitting、DGJMDlg、GJYXJMDlg、
   JMDBDlg、JMSJDlg 共 6 处。

DGJM.sat 本身仍是固定文件名,写读双方靠它隐式传递,本次不改名。
JMDBDlg、JMSJDlg、HZQTDlg 共 7 处共用固定的 JMSJ.sat,两个 CAD 实例
同时运行时会互相覆盖,acisIn 可能读到另一个实例写的截面。

新增 Pool3dCmd/PoolSectionTemp.h 的 GetPoolSectionSatPath(),文件名改为
JMSJ_<pid>.sat。同一进程内所有调用点路径一致,acisOut 写、ShowLastSection
读的隐式链路不受影响;进程之间用 PID 隔离。顺带去掉无意义的 MakeLower。

同时新增 temp-file-naming.md,记录临时文件命名规则、全库现状,以及
DGJM.sat 已废弃、不再改造的结论。
删除 Pool3dCmd/PoolSectionTemp.h,JMDBDlg、JMSJDlg、HZQTDlg 共 7 处
改为 CoreTools::getTempFilePath(_T("JMSJ_"), _T(".sat"), 目录)。

同时修 getTempFilePath 自身的问题:
- 传了有效父目录时 sParentPath 没有赋值,会拼出 "\JMSJ_xxx.sat"
- 父目录为空时仍对 pszParentPath 调 _taccess,参数可能是 NULL
- return sPath(); 语法错误
- objId 用 %lu 格式化 Adesk::ULongPtr,64 位下会截断,改 %I64u

temp-file-naming.md 同步改为介绍这个通用函数。
gjm merged commit beeb6031e0 into main 2026-10-22 10:09:15 +08:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gjm/envi-code#33