![]() |
【转帖】求助块搜索问题,帮忙看看程序!!!
求助块搜索问题,帮忙看看程序!!!
求助块搜索问题,帮忙看看程序!!! 哪位高手帮帮看看程序,为什么不能获得块名呢?是书上的例子还是有错,跟踪发现获得的blockname是*model_space,为什么会这样?能帮帮我改改么?小妹这里先谢谢了!急待解决!!! acdbdatabase extdb(adesk::kfalse);//定义一个空数据库 char dwgname[134],*blockname; struct resbuf filedia,fileres; //打开文件选择对话框dwg文件 acedgetvar("filedia",&filedia);//读入系统变量filedia之值 if (filedia.resval.rint==0) filedia.resval.rint=1; if (acedgetfiled("选择图形文件",null,"dwg",0,&fileres)==rtnorm) { if (fileres.restype==rtstr) { strcpy(dwgname,fileres.resval.rstring); } else return; } else return; free(fileres.resval.rstring); //将选择的dwg文件读入extdb数据库中 extdb.readdwgfile(dwgname); //获得指向当前图形的块表指针pblocktable acdbblocktable *pbtable; //定义块表指针 //获得指向extdb数据库的块表指针 extdb.getblocktable(pbtable,acdb::kforread); acdbblocktablerecord *pbtrecord; //获得遍历块表的浏览器、获得指向块表浏览器的指针 acdbblocktableiterator *pbiterator; pbtable->newiterator(pbiterator); //利用循环结构和块表浏览器遍历块表 for (pbiterator->start();!pbiterator->done();pbiterator->step()) { //调用块表浏览器的成员函数getrecord获得指向块表浏览器的指针 pbiterator->getrecord(pbtrecord,acdb::kforread,adesk::kfalse); pbtrecord->getname(blockname); char tmp[32]; tmp[0]=*blockname; if (tmp[0]='*')//不显示由hatch,dim等操作命令产生的无名块 ads_printf("\n块名:%s",blockname); delete pbiterator;//删除浏览器对象 pbtrecord->close();//关闭块表记录 pbtable->close();//关闭块表 tmp[0]=*blockname;是什么意思?tmp[0]是八个bit,*blockname是一个指针所指向的内容。 { 还就 一个。不知道你怎么编译过去的。 呵呵 谢谢指教! }是复制的时候,没复制上,麻烦你看了,这个程序是书上的例子,我也不是很清楚,所以才请教高手指点的,我理解tmp[0]=*blockname是将块名赋给tmp! 不知道对不对? 尽信书不如无书。 谢谢 你说的对啊!我也觉得不对,那能不能告诉我例子错在哪?我是个菜鸟,不知道该怎样改?是哪错了呢?高手能指点一下么? |
所有的时间均为北京时间。 现在的时间是 08:41 PM. |