pckite 发表于 2004-8-3 17:43:00

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

各位高手:假如我先运行getData函数,不运行setData函数,则一切正常,或者只运行setData函数也一切正常,<B><FONT color=#dd4822>但如果我先运行getData再运行 setData函数</FONT></B>,AUTOCAD就出错并关闭(出错的地方已标出),高手能告诉我为什么吗?程序如下:<BR>char* getData()<BR>{<BR>                Acad::ErrorStatus es;<BR>                AcDbDictionary *pNamedObj;<BR>                acdbCurDwg()-&gt;getNamedObjectsDictionary (pNamedObj,AcDb::kForRead );<BR>                AcDbDictionary *pDict;       



                es=pNamedObj-&gt;getAt("SmartDict",(AcDbObject*&amp;)pDict,AcDb::kForRead );<BR>                if (es==Acad::eOk )<BR>                {<BR>                                                               AcDbXrecord * pXrec1;<BR>                                                                       es=pDict-&gt;getAt("XREC1",(AcDbObject*&amp;)pXrec1,AcDb::kForRead );<BR>                                                                       if (es==Acad::eOk )<BR>                                                                       {<BR>                                                                                                                                       struct resbuf *pHead;<BR>                                                                                                                                       pXrec1-&gt;rbChain(&amp;pHead);<BR>                                                                                                                                       for(int i=0;i&lt;index;i++,pHead=pHead-&gt;rbnext)<BR>                                                                                                                                       {                        }<BR><BR>                                                                                                                                       return pHead-&gt;resval.rstring;<BR>                                                                                                                                       ads_relrb(pHead);<BR>                                <BR>                                                                       }<BR><BR>                                                                       //pXrec1=NULL;<BR>                                                                                //delete pXrec1;<BR>                                                               /*        pXrec1-&gt;close ();<BR>                                                                       pDict-&gt;close ();<BR>                                                                       pNamedObj-&gt;close ();*/<BR>                }<BR>                else<BR>                {<BR>                                                                       //pDict-&gt;close ();<BR>                                                                       //pNamedObj-&gt;close ();                        <BR>                                                               return NULL;<BR>                }


<BR>}


/*---------------------------------------------------------------*/<BR>void setData() <BR>{<BR>        Acad::ErrorStatus es;<BR>        AcDbDictionary *pNamedObj;<BR>        AcDbDictionary *pDict=new AcDbDictionary;<BR>        AcDbObjectId DictId;


        acDocManager-&gt;lockDocument( acDocManager-&gt;curDocument(), AcAp::kWrite,NULL,NULL,true);


        acdbCurDwg()-&gt;getNamedObjectsDictionary (pNamedObj,AcDb::kForWrite );


        es=pNamedObj-&gt;setAt("SmartDict",pDict,DictId);//<FONT color=#ff0000><B>在这出错<BR></B></FONT>        acutPrintf(_T("\n无法执行:pNamedObj-&gt;setAt (%s)"),acadErrorStatusText(es));<BR>        <BR>if (es==Acad::eOk)<BR>{        <BR>//。。。。。<BR>        }<BR><BR>        //pNamedObj-&gt;close ();<BR>        //pDict-&gt;close();<BR>        //        pDict=NULL;<BR>        //delete pDict;<BR>        acDocManager-&gt;unlockDocument( acDocManager-&gt;curDocument()) ;<BR>}
页: [1]
查看完整版本: [求助]求助高手!!我的这段程序错在哪里?