如下图所示,在通过GetXSCutPoint()获取完XSCutPoint后,执行到函数末尾进行资源释放时,ORD崩溃。debug定位,是在执行XSCutPoint析构函数时发生了错误
请问一下是哪里调用有问题吗?
能否把你的例子和代码发给我测试一下
DgnModelP modelP = ISessionMgr::GetActiveDgnModelP(); csConnect = ConsensusConnection::Create(*dgnModel); csModel = ConsensusModel::Create(*dgnModel); GeometricModelPtr geomModel = csModel->GetActiveGeometricModel(); auto corridors = geomModel->GetCorridors(); if (corridors.IsValid()&&corridors->MoveNext()) { corridors->Reset(); while (corridors->MoveNext()) { CorridorPtr corri = corridors->GetCurrent(); bvector<XSCutPoint> points; corri->GetXSCutPoints(2, 40, 40, 0, points); for each(XSCutPoint point in points) { mdlDialog_dmsgsPrint(L"GetXSCutPoint"); } } }
代码和测试文件如上,廊道模板用的是ORD自带的
您好,赵工我们又仔细研究了一下您的这个问题。发现是我们的SDK C++头文件发布的时候的一个bug,少发布了一些数据。我给您在SDK UP5的基础上改进的头文件,如果您是UP5版本直接替换SDK 头文件的文件夹下名为“CIFGeometryModelSDK.h”的这个文件,如果不是UP5,请复制整个“struct XSCutPoint“的内容替换您的CIFGeometryModelSDK.h文件的相应位置。然后再执行“bmake -a”命令重新编译您的程序。CIFGeometryModelSDK.h
Answer Verified By: wanglin
好的,我会拿这个头文件试一下,请问以后计划在哪个SDK版本里修复这个问题
您好,我们在下个版本中会去修复这个问题。