- UID
- 115947
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-3-21
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
下面这段程序是否存在资源泄漏的问题,只能运行125次,之后就不行了,不知道为什么?
BOOL BpDsnSbProc1(ads_point pt,double &segema)
{
resbuf *prbEmk;
double dR;
ads_name ss,ent;
int nAdsRtn;
long lSSLength,i;
int LB;
ads_point ptPk={0,0,0};
double d;
BOOL bRtn;
int k,Nanfo;
double lexp,AngX,Qi;
double segema1=0;
dR=(double)20*g_nPkDia/1000;
prbEmk=ads_buildlist(-4,"<AND",8,g_stLayers[Pk].szName,RTDXF0,"INSERT",2,"PK",-4,"AND>",0);
ads_ssget_cp(pt,dR,prbEmk,ss); //得到以pt为圆心,dR为半径,满足条件prbEmk,返回ss
nAdsRtn=ads_sslength(ss,&lSSLength);
if(nAdsRtn!=RTNORM || lSSLength<=0)
{
ads_relrb(prbEmk);
return FALSE;
}
for(i=0;i<lSSLength;i++)
{
nAdsRtn=ads_ssname(ss,i,ent);
if(nAdsRtn!=RTNORM)
return FALSE;
LB=BpDsnAmntGetPkLB(ent,ptPk); //获得ent的属性
d=ads_distance(pt,ptPk);
if(LB==2 && d>(double)g_nPkDia/2000)
{
bRtn=BpSbGetPkAtt(ent,ptPk,Nanfo,lexp,Qi,k,AngX); //获得属性
if(!bRtn)
return FALSE;
segema1+=BpSbGetSegema(pt,ptPk,Nanfo,lexp,k,AngX);
}
}
segema=segema1;
ads_relrb(prbEmk);
return TRUE;
}
QQ:87145681 |
|