重构: AecXData 类型标签改用枚举 AecXData::EType

- 在 AecXData 内新增 enum EType,取值直接采用 wtypes.h 的 VARENUM(VT_*),
  与原实现逐位一致(nVt 会序列化进 DWG/DXF/XData,数值必须保持不变)。
- 各模块共 303 处 nVt 判断由裸 VT_* 改为 AecXData::kTypeXxx,涉及 18 个文件;
  仅调试打印用的字符串字面量保持原样。
- AecDbObjXDataMap.h 增加 #include <wtypes.h>(EType 引用 VT_*)。
This commit is contained in:
company-desktop-computer committed 2026-10-13 09:55:42 +08:00
1 parent 9d9077a03e
commit 0467086e65
18 files changed
+602 -723

No files matched your search

+11 -11
View File
@@ -2668,11 +2668,11 @@ void CJSTZDlg::ShowToCompareList(LPCTSTR pszName,AecDbObjXDataMap& map1,AecDbObj
nVt = xdata1.nVt;
switch (nVt)
{
case VT_I4: // 整型
case AecXData::kTypeInt: // 整型
sVal1.Format(_T("%d"),(int)xdata1.nVal);
sVal2.Format(_T("%d"),(int)xdata2.nVal);
break;
case VT_UI4: //s id
case AecXData::kTypeSoftId: //s id
#ifndef _WIN64
sVal1.Format(_T("%ld"),xdata1.nVal);
sVal2.Format(_T("%ld"),xdata2.nVal);
@@ -2681,7 +2681,7 @@ void CJSTZDlg::ShowToCompareList(LPCTSTR pszName,AecDbObjXDataMap& map1,AecDbObj
sVal2.Format(_T("%d"),xdata2.nVal);
#endif
break;
case VT_UI8: //h id
case AecXData::kTypeHardId: //h id
#ifndef _WIN64
sVal1.Format(_T("%ld"),xdata1.nVal);
sVal2.Format(_T("%ld"),xdata2.nVal);
@@ -2690,33 +2690,33 @@ void CJSTZDlg::ShowToCompareList(LPCTSTR pszName,AecDbObjXDataMap& map1,AecDbObj
sVal2.Format(_T("%d"),xdata2.nVal);
#endif
break;
case VT_R8: // 浮点
case AecXData::kTypeDouble: // 浮点
sVal1.Format(_T("%.3f"),xdata1.dVal[0]);
sVal2.Format(_T("%.3f"),xdata2.dVal[0]);
break;
case (VT_BYREF | VT_R8): // 点
case AecXData::kTypePoint: // 点
sVal1.Format(_T("%.3f,%.3f,%.3f"),xdata1.dVal[0],xdata1.dVal[1],xdata1.dVal[2]);
sVal2.Format(_T("%.3f,%.3f,%.3f"),xdata2.dVal[0],xdata2.dVal[1],xdata2.dVal[2]);
break;
case (VT_BYREF | VT_R8 + 1): // cad变化点
case AecXData::kTypePointWorld: // cad变化点
sVal1.Format(_T("%.3f,%.3f,%.3f"),xdata1.dVal[0],xdata1.dVal[1],xdata1.dVal[2]);
sVal2.Format(_T("%.3f,%.3f,%.3f"),xdata2.dVal[0],xdata2.dVal[1],xdata2.dVal[2]);
break;
case (VT_BYREF | VT_R8 + 2): // 向量
case AecXData::kTypeVector: // 向量
sVal1.Format(_T("%.3f,%.3f,%.3f"),xdata1.dVal[0],xdata1.dVal[1],xdata1.dVal[2]);
sVal2.Format(_T("%.3f,%.3f,%.3f"),xdata2.dVal[0],xdata2.dVal[1],xdata2.dVal[2]);
break;
case (VT_BYREF | VT_R8 + 3): // 变化向量
case AecXData::kTypeVectorWorld: // 变化向量
sVal1.Format(_T("%.3f,%.3f,%.3f"),xdata1.dVal[0],xdata1.dVal[1],xdata1.dVal[2]);
sVal2.Format(_T("%.3f,%.3f,%.3f"),xdata2.dVal[0],xdata2.dVal[1],xdata2.dVal[2]);
break;
case (VT_BYREF | VT_R8 + 4): // 矩阵
case AecXData::kTypeMatrix: // 矩阵
sVal1.Format(_T("%s"),xdata1.pszVal);
sVal2.Format(_T("%s"),xdata2.pszVal);
break;
case (VT_BYREF | VT_R8 + 5): // binarydata
case AecXData::kTypeBinary: // binarydata
break;
case VT_BSTR: // 字符串
case AecXData::kTypeString: // 字符串
sVal1.Format(_T("%s"),xdata1.pszVal);
sVal2.Format(_T("%s"),xdata2.pszVal);
break;
+1 -1
View File
@@ -261,7 +261,7 @@ namespace
for (AecDbObjXDataMap::It it = pMap->Begin(); it != pMap->End(); ++it)
{
const AecXData &xd = it->second;
if (xd.nVt == VT_BSTR && xd.pszVal)
if (xd.nVt == AecXData::kTypeString && xd.pszVal)
{
CString s(xd.pszVal);
s.Trim();