找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 677|回复: 10

[求助] 两段多段线,求交点后,程序执行到最后一个括号,就报发生冲突

[复制链接]

已领礼包: 20个

财富等级: 恭喜发财

发表于 2020-2-18 22:57:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
哪位大哥能帮我运行以下这段代码,直接复制上去,一个命令就可以了,我这里老是在程序结束完了,释放 交点的时候 ,就报告说发生冲突,哪位大哥帮帮忙啊,运行一下。

  1.                 AcDbEntity *ent=NULL;
  2.                 AcRxClass *cls=AcDbPolyline::desc();


  3.                 ads_name entName;
  4.                 ads_point pt;
  5.                 AcDbPolyline *pl1=NULL;
  6.                 AcDbPolyline *pl2=NULL;
  7.                 if(acedEntSel(TEXT("select pl1:\n"),entName,pt)==RTNORM){

  8.                         AcDbObjectId entId;

  9.                    ErrorStatus es=acdbGetObjectId(entId,entName);

  10.                    if(es==ErrorStatus::eOk){

  11.                            

  12.                            es=acdbOpenObject(pl1,entId,AcDb::kForWrite);

  13.                            if(es!=ErrorStatus::eOk){

  14.                                    return;
  15.                            }

  16.                    }


  17.                 }
  18.                 else{
  19.                         return;
  20.                 }
  21.                 if(acedEntSel(TEXT("select pl2:\n"),entName,pt)==RTNORM){

  22.                         AcDbObjectId entId;

  23.                         ErrorStatus es=acdbGetObjectId(entId,entName);

  24.                         if(es==ErrorStatus::eOk){


  25.                                 es=acdbOpenObject(pl2,entId,AcDb::kForWrite);

  26.                                 if(es!=ErrorStatus::eOk){
  27.                                         pl1->close();
  28.                                         return;
  29.                                 }

  30.                         }


  31.                 }
  32.                 else{
  33.                         pl1->close();
  34.                         return;
  35.                 }
  36.                 AcGePoint3dArray ptArrJ;

  37.                 ErrorStatus es= pl1->intersectWith(pl2,AcDb::kOnBothOperands,ptArrJ);

  38.                 acutPrintf(L"%d",es);

  39.                 if(ptArrJ.length()>=2){

  40.                         pl1->close();
  41.                         pl2->close();

  42.                 }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-18 23:09:28 | 显示全部楼层
我怀疑是这个AcGePoint3dArray 最后释放点的时候会出错,我都不知道该怎么办才好了。

错误截图

错误截图

点评

既然是求交点,你为什么两个对象都要打开写尼?  详情 回复 发表于 2020-2-19 16:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-19 13:48:29 | 显示全部楼层
我用vs2010+cad2012 在 win10 64位的电脑上就这样,但是我用vs2015+cad2018,同样的代码一点错误都没得,我该怎么办
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2020-2-19 16:03:45 | 显示全部楼层
LL_zZ 发表于 2020-2-18 23:09
我怀疑是这个AcGePoint3dArray 最后释放点的时候会出错,我都不知道该怎么办才好了。

既然是求交点,你为什么两个对象都要打开写尼?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-19 21:12:40 | 显示全部楼层
LoveArx 发表于 2020-2-19 16:03
既然是求交点,你为什么两个对象都要打开写尼?

打开写,应该也不得报错才对撒,我试了换成读也是样的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4365个

财富等级: 富可敌国

发表于 2020-2-20 00:04:08 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-21 23:04:57 | 显示全部楼层
最新发现,我这个有很少的情况,代码不报这个错误,能正常执行。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-21 23:21:20 | 显示全部楼层
主要是在使用AcGePointArray或者AcDbVoidPtrArray的时候会出错
这两个是使用的acarray.h里的东西


                               
登录/注册后可看大图

主要是delete[] mpArray这里就出错。
但是我单独做个写几个点添加进AcGePointArray里,这个Point3dArray释放的时候又不会报错

                               
登录/注册后可看大图


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-21 23:24:07 | 显示全部楼层
template <class T, class R>
AcArray<T,R>::~AcArray()
{
    if (mpArray != NULL)
        delete[] mpArray;
}
就是delete[]这里之后就不执行了。

点评

aeo
AcArray 有很多操作方法,看arx的帮助,很全的, 不要用delete . AcArray好像不要delete,直接删除里面的东西,或者把逻辑长度设为0就可以了。 当然如果你的AcArray里面存的东西是要delete的,那释放的时候delete,但  详情 回复 发表于 2020-2-26 11:38
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2020-2-26 11:38:27 | 显示全部楼层
LL_zZ 发表于 2020-2-21 23:24
template
AcArray::~AcArray()
{

AcArray 有很多操作方法,看arx的帮助,很全的, 不要用delete . AcArray好像不要delete,直接删除里面的东西,或者把逻辑长度设为0就可以了。
当然如果你的AcArray里面存的东西是要delete的,那释放的时候delete,但不是delete这个AcArray
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

 楼主| 发表于 2020-2-26 12:09:31 | 显示全部楼层
aeo 发表于 2020-2-26 11:38
AcArray 有很多操作方法,看arx的帮助,很全的, 不要用delete . AcArray好像不要delete,直接删除里面的东 ...

我去文档看看,看能找到什么线索不
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-4 16:37 , Processed in 0.481632 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表