明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1831|回复: 6

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

[复制链接]
发表于 2005-3-16 10:13 | 显示全部楼层 |阅读模式
我的程序在VC中编译没错,但运行到输入标号,按回车后就出现异常,但CAD不会退出!请高手指点一二!!!我的程序如下: void ACADbiaohao()
{
#ifdef OARXWIZDEBUG
acutPrintf ("\nOARXWIZDEBUG - ACADbiaohao() called.");
#endif // OARXWIZDEBUG // TODO: Implement the command
AcGePoint3d sp,ep,dp,textp;
AcGeVector3d normal(0,0,1);
char cha[3];
if(acedGetPoint(NULL,"\n请选择所标对象:",asDblArray(sp))!=RTNORM)
return;
if(acedGetPoint(asDblArray(sp),"\n请选定标号位置:",asDblArray(dp))!=RTNORM)
return;
if(acedGetString(Adesk::kTrue,"\n请输入标号:",cha)!=RTNORM)
return;
if(dp[X]>sp[X])
{
ep[X]=dp[X]+10;
ep[Y]=dp[Y];
ep[Z]=0;
textp[X]=dp[X]+3;
textp[Y]=dp[Y]+1;
textp[Z]=0;
}
else
{
ep[X]=dp[X]-10;
ep[Y]=dp[Y];
ep[Z]=0;
textp[X]=dp[X]-7;
textp[Y]=dp[Y]+1;
textp[Z]=0;
}
AcDbBlockTable *pbt;
acdbHostApplicationServices()->workingDatabase()->getSymbolTable(pbt,AcDb::kForRead);
AcDbBlockTableRecord *pbtr;
pbt->getAt(ACDB_MODEL_SPACE,pbtr,AcDb::kForWrite);
pbt->close();
AcDbLine *pline=new AcDbLine(sp,dp);
AcDbLine *pline1=new AcDbLine(dp,ep);
AcDbCircle *pcircle=new AcDbCircle(sp,normal,0.3);
AcDbObjectId lineid;
AcDbObjectId lineid1;
AcDbObjectId circleid;
pbtr->appendAcDbEntity(lineid,pline);
pbtr->appendAcDbEntity(lineid1,pline1);
pbtr->appendAcDbEntity(circleid,pcircle);

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

本版积分规则

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

GMT+8, 2024-5-2 03:51 , Processed in 0.353227 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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