ARX-创建属性块然后更换图层出现程序崩溃

leez0301 2009-07-23 05:40:05
我先通过一个块表记录ID创建了一个块引用,然后从块表记录中遍历属性定义,为块引用创建属性,最后创建一个新图层,再将块引用的图层设置为创建的图层。

AcDbObjectId idTest = DeviceBzUtility::GetCurObjId(); //获得创建块引用的块表记录ID
AcDbBlockReference* pBlkRef = new AcDbBlockReference( AcGePoint3d::kOrigin , idTest);
BlkTest::AddAttributeToBlock( pBlkRef, idTest ); //为该块引用创建属性
HY::addToCurrentSpaceAndClose(pBlkRef); //添加到模型空间并关闭该引用
AcDbObjectId idLyer = BlkTest::Createlayer(strLayer);//创建一个图层并返回图层ID
Acad::ErrorStatus status = pEnt->setLayer(idLyer);//设置图层


代码流程基本如上
运行完成后没有异常,图形,属性都正确,但是当我按ctrl+Z取消时,或者u取消创建的块引用时程序崩溃,提示:eNullObjectID,该程序在vs2005以前的编译器编译,也就是在R17以前的cad上运行就出现此问题,在vs05上编译后在CAD08上运行没有任何问题。
现在初步判断是由于设置了属性字,在设置图层出问题,这两个操作单独一个都没有问题的。
寻解答。。。。。
...全文
198 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
小石头要起飞 2011-11-16
  • 打赏
  • 举报
回复
请问如何直接编程实现块的定义和插入?
Butterfly_King 2010-01-18
  • 打赏
  • 举报
回复
学习一下
kissmsdn 2009-08-14
  • 打赏
  • 举报
回复
不要过分相信编译器,
cad2002就应该淘汰,用vc6开发,它存在好多问题了。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧