明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1193|回复: 0

[求助]求助高手!!我的这段程序错在哪里?

[复制链接]
发表于 2004-8-3 17:43:00 | 显示全部楼层 |阅读模式
各位高手:假如我先运行getData函数,不运行setData函数,则一切正常,或者只运行setData函数也一切正常,但如果我先运行getData再运行 setData函数AutoCAD就出错并关闭(出错的地方已标出),高手能告诉我为什么吗?程序如下:
char* getData()
{
Acad::ErrorStatus es;
AcDbDictionary *pNamedObj;
acdbCurDwg()->getNamedObjectsDictionary (pNamedObj,AcDb::kForRead );
AcDbDictionary *pDict; es=pNamedObj->getAt("SmartDict",(AcDbObject*&)pDict,AcDb::kForRead );
if (es==Acad::eOk )
{
AcDbXrecord * pXrec1;
es=pDict->getAt("XREC1",(AcDbObject*&)pXrec1,AcDb::kForRead );
if (es==Acad::eOk )
{
struct resbuf *pHead;
pXrec1->rbChain(&pHead);
for(int i=0;i<index;i++,pHead=pHead->rbnext)
{ }

return pHead->resval.rstring;
ads_relrb(pHead);

}

//pXrec1=NULL;
//delete pXrec1;
/* pXrec1->close ();
pDict->close ();
pNamedObj->close ();*/
}
else
{
//pDict->close ();
//pNamedObj->close ();
return NULL;
}
} /*---------------------------------------------------------------*/
void setData()
{
Acad::ErrorStatus es;
AcDbDictionary *pNamedObj;
AcDbDictionary *pDict=new AcDbDictionary;
AcDbObjectId DictId; acDocManager->lockDocument( acDocManager->curDocument(), AcAp::kWrite,NULL,NULL,true); acdbCurDwg()->getNamedObjectsDictionary (pNamedObj,AcDb::kForWrite ); es=pNamedObj->setAt("SmartDict",pDict,DictId);//在这出错
acutPrintf(_T("\n无法执行:pNamedObj->setAt (%s)"),acadErrorStatusText(es));

if (es==Acad::eOk)
{
//。。。。。
}

//pNamedObj->close ();
//pDict->close();
// pDict=NULL;
//delete pDict;
acDocManager->unlockDocument( acDocManager->curDocument()) ;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 06:32 , Processed in 0.146921 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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