[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>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()->workingDatabase()->getSymbolTable(pbt,AcDb::kForRead);<BR> AcDbBlockTableRecord *pbtr;<BR> pbt->getAt(ACDB_MODEL_SPACE,pbtr,AcDb::kForWrite);<BR> pbt->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->appendAcDbEntity(lineid,pline);<BR> pbtr->appendAcDbEntity(lineid1,pline1);<BR> pbtr->appendAcDbEntity(circleid,pcircle);<BR> <BR> AcDbText *ptext=new AcDbText(textp,cha,NULL,3,0);<BR> pbtr->appendAcDbEntity(ptext);<BR> ptext->close();<BR> pcircle->close();<BR> pbtr->close();<BR> pline->close();<BR> pline1->close();<BR>} 楼主请再说详细一点好么? 回车是直接就回车还是输入了一串字符再回车? 异常是什么样的异常? 有没有什么错误报告跳出来? 还是就直接退出程序没有进行后面的操作? 是输入几个数字后回车,比如23,7.然后就弹出异常出错对话框,在视图区没有任何线条和数字出现,多谢你了!!对话框出错说我的ARX文件命令中发生异常, 我的环境是VC6+ARX2002,我编译了你的源代码,并加入了如下的头文件,没有出现任何异常,并且出现了标注的线条和数字,你把你的头文件包含下面的试试
#include "geassign.h"<BR>#include "dbsymtb.h"<BR>#include "dbents.h" 除了头文件之外, 楼主也看看是不是因为char cha太小了, 放不下多于三个字的字串..23,7这样的字串里逗号也是要算字符的..改成试一下..虽然偶不觉得这个会造成fatal error, 但是有些时候什么事情都会发生.. 谢谢你们了!!! 真的cha的大原因!!多谢多谢!!!!
页:
[1]