bai_cai101 发表于 2005-3-16 10:13:00

[ARX]求助,请高手指点!!!

我的程序在VC中编译没错,但运行到输入标号,按回车后就出现异常,但CAD不会退出!请高手指点一二!!!我的程序如下:


void ACADbiaohao()<BR>{<BR>#ifdef OARXWIZDEBUG<BR>        acutPrintf ("\nOARXWIZDEBUG - ACADbiaohao() called.");<BR>#endif // OARXWIZDEBUG


        // TODO: Implement the command<BR>        AcGePoint3d sp,ep,dp,textp;<BR>        AcGeVector3d normal(0,0,1);<BR>        char cha;<BR>                if(acedGetPoint(NULL,"\n请选择所标对象:",asDblArray(sp))!=RTNORM)<BR>                return;<BR>        if(acedGetPoint(asDblArray(sp),"\n请选定标号位置:",asDblArray(dp))!=RTNORM)<BR>                return;<BR>        if(acedGetString(Adesk::kTrue,"\n请输入标号:",cha)!=RTNORM)<BR>                return;<BR>        if(dp&gt;sp)<BR>        {<BR>                ep=dp+10;<BR>                ep=dp;<BR>                ep=0;<BR>                textp=dp+3;<BR>                textp=dp+1;<BR>                textp=0;<BR>        }<BR>        else<BR>        {<BR>                ep=dp-10;<BR>                ep=dp;<BR>                ep=0;<BR>                textp=dp-7;<BR>                textp=dp+1;<BR>                textp=0;<BR>        }<BR>        AcDbBlockTable *pbt;<BR>        acdbHostApplicationServices()-&gt;workingDatabase()-&gt;getSymbolTable(pbt,AcDb::kForRead);<BR>        AcDbBlockTableRecord *pbtr;<BR>        pbt-&gt;getAt(ACDB_MODEL_SPACE,pbtr,AcDb::kForWrite);<BR>        pbt-&gt;close();<BR>        AcDbLine *pline=new AcDbLine(sp,dp);<BR>        AcDbLine *pline1=new AcDbLine(dp,ep);<BR>        AcDbCircle *pcircle=new AcDbCircle(sp,normal,0.3);<BR>        AcDbObjectId lineid;<BR>        AcDbObjectId lineid1;<BR>        AcDbObjectId circleid;<BR>        pbtr-&gt;appendAcDbEntity(lineid,pline);<BR>        pbtr-&gt;appendAcDbEntity(lineid1,pline1);<BR>        pbtr-&gt;appendAcDbEntity(circleid,pcircle);<BR>        <BR>        AcDbText *ptext=new AcDbText(textp,cha,NULL,3,0);<BR>        pbtr-&gt;appendAcDbEntity(ptext);<BR>        ptext-&gt;close();<BR>        pcircle-&gt;close();<BR>        pbtr-&gt;close();<BR>        pline-&gt;close();<BR>        pline1-&gt;close();<BR>}

pandoram 发表于 2005-3-16 10:47:00

楼主请再说详细一点好么? 回车是直接就回车还是输入了一串字符再回车? 异常是什么样的异常? 有没有什么错误报告跳出来? 还是就直接退出程序没有进行后面的操作?

bai_cai101 发表于 2005-3-16 11:04:00

是输入几个数字后回车,比如23,7.然后就弹出异常出错对话框,在视图区没有任何线条和数字出现,多谢你了!!对话框出错说我的ARX文件命令中发生异常,

JA_JERRY 发表于 2005-3-16 11:25:00

我的环境是VC6+ARX2002,我编译了你的源代码,并加入了如下的头文件,没有出现任何异常,并且出现了标注的线条和数字,你把你的头文件包含下面的试试


#include "geassign.h"<BR>#include "dbsymtb.h"<BR>#include "dbents.h"

pandoram 发表于 2005-3-16 11:47:00

除了头文件之外, 楼主也看看是不是因为char cha太小了, 放不下多于三个字的字串..23,7这样的字串里逗号也是要算字符的..改成试一下..虽然偶不觉得这个会造成fatal error, 但是有些时候什么事情都会发生..

bai_cai101 发表于 2005-3-16 12:08:00

谢谢你们了!!!

bai_cai101 发表于 2005-3-16 12:10:00

真的cha的大原因!!多谢多谢!!!!
页: [1]
查看完整版本: [ARX]求助,请高手指点!!!