- UID
- 17363
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-11-27
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
各位老兄,我作了个合并两个复杂链元素(类型12)的程序。首先将两个元素的顶点信息分别提取后,合并后从新创建一个新的元素加入到文件中,同时删除原来的旧元素。但当两个元素大小超过64k(我的测试结果)新元素无法写入文件或有错误出现,不只是什么原因。当删掉代码最后两句后新元素就可以正常写入文件,是不是UNDO缓存有一定的限制?
下面是程序简单代码,
{ MSElementDescr *eldP1=NULL,*eldP2=NULL,*eldP=NULL;
DPoint3d *pt1=NULL,*pt2=NULL,*pt=NULL;
int n1,n2,n;
int pos1,pos2;
getElmPos(&pos1,&pos2);
mdlElmdscr_read(&eldP1,pos1,0,0,NULL);
mdlElmdscr_stroke(&pt1,&n1,eldP1,0.1);
mdlElmdscr_freeAll(&eldP1);
mdlElmdscr_read(&eldP2,pos2,0,0,NULL);
mdlElmdscr_stroke(&pt2,&n2,eldP1,0.1);
mdlElmdscr_freeAll(&eldP2);
n=n1+n2;
pt=(DPonit3d *)malloc(n*sizeof(DPoint3d));
memcpy(pt, pt1,n1*sizeof(DPoint3d));
memcpy(pt+n1,pt2,n2*sizeof(DPoint3d));
free(pt1);free(pt2);
mdlElmdscr_createFromVertices(eldP&,NULL,pt,n,1,0);
free(pt);
mdlElmdscr_add(eldP);
mdlElmdscr_freeAll(&eldP);
mdlElmdscr_undoableDelete(NULL,pos1,1);
mdlElmdscr_undoableDelete(NULL,pos2,1);
} |
|