- 积分
- 338
- 明经币
- 个
- 注册时间
- 2007-3-15
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
我做了一个无模式对话框,有一个“拾取”按钮,点击这个按钮,执行以下函数,控制权到AutoCAD,拾取一个直线实体,得到该实体的一些属性,但是AutoCAD马上就崩溃了,出现“致命错误:Unhandled Access Violation Reading 0x0000 Exception at 52760cfh”。而且执行到 pEntity->setColorIndex(200);也同样崩溃。请教大师们指导,非常感谢!!但是我用模式对话框的时候就不会导致AutoCad崩溃。
void CCad2NcDialog::OnBnClickedButtonPick()
{
acedGetAcadDwgView()->SetFocus();
ads_name entName;
ads_point pt;
AcGePoint3d ptStart,ptEnd,ptCenter;
int errNo=0;
//获取一个实体
do{
errNo = acedEntSel(_T("\n请拾取要转换为G代码的实体:"),entName,pt);
if(errNo == RTNORM)
{
//获取选择对象的指针,entityId是一个全局的ID号变量
Acad::ErrorStatus es=acdbGetObjectId(entityId,en);
if(es != Acad::eOk) return FALSE;
AcDbEntity *pEntity;
es = acdbOpenAcDbEntity(pEntity,entityId,AcDb::kForWrite);
//改变实体的颜色
// pEntity->setColorIndex(200);
//判断选择的对象是否是圆弧
if((!pEntity->isKindOf(AcDbArc::desc())) && (!pEntity->isKindOf(AcDbLine::desc())))
{
pEntity->close();
return FALSE;
}
}
}while(TRUE);
}
|
|