乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 44|回复: 2

[求助]版主救命啊!为什么不能这样?

[复制链接]

22

主题

54

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
142
发表于 2004-7-9 11:41:00 | 显示全部楼层 |阅读模式
我想把数据存到Table里,不知这样为什么不行?
struct resbuf *pRb, *pTemp;
        AcDbSymbolTable * appTable;
        char * appName="smartTest";
        char * resString="abcdefgffff";                 AcDbDatabase *pDb=acdbHostApplicationServices()->workingDatabase();               
        pDb->getRegAppTable(appTable,AcDb::kForWrite);       
pRb = appTable->xData(appName);//(能这样吗?)
。。。。
。。。。
读出来是怎么样读的?我找了相关资料都没有,救救我啊,版主!!!!
这有个例子,但是它是对某一具体的对象进行操作的,而我们操作的是当前的图形。

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

1

主题

22

帖子

3

银币

初来乍到

Rank: 1

铜币
26
发表于 2004-7-9 17:01:00 | 显示全部楼层
可以参考一下这个例子: void addXdata()
{
        struct resbuf* prbX;
        char appname[] = {"SPACEH"};
        char windotype[] = {"Rect"};
        ads_name ename;
        AcDbObjectId entId;
        AcDbObject* pObj;
        AcGePoint2d sp(getWindowStartPoint());
        ads_point lwrleft;
        lwrleft[X] = sp.x;
        lwrleft[Y] = sp.y;
        lwrleft[Z] = 0.0;
        acdbRegApp("SPACEH");
        prbX = acutBuildList(AcDb::kDxfRegAppName, appname,
                                                 AcDb::kDxfXdAsciiString, windotype,
                                                 AcDb::kDxfXdInteger32, getWindowRows(),
                                                 AcDb::kDxfXdInteger32, getWindowCols(),
                                                 AcDb::kDxfXdReal, getWindowLength(),
                                                 AcDb::kDxfXdReal, getWindowHeight(),
                                                 AcDb::kDxfXdWorldXCoord, lwrleft,
                                                 RTNONE);
       
        // Get the last entity
        acdbEntLast(ename);
        // Get the entity object ID
        acdbGetObjectId(entId, ename);
        // Open the enity for a write operation
        acdbOpenObject(pObj, entId, AcDb::kForWrite);
        // Add the extended entity data to the entity
        pObj->setXData(prbX);
        pObj->close();
        acutRelRb(prbX);
}
void printXdata()
{
        struct resbuf* prbX;
        struct resbuf* pTemp;
        char appname[] = {"SPACEH"};
        ads_name ename;
        AcDbObjectId entId;
        AcDbObject* pObj;
        // Get the last entity
        acdbEntLast(ename);
        // Get the entity object ID
        acdbGetObjectId(entId, ename);
        // Open the enity for a write operation
        acdbOpenObject(pObj, entId, AcDb::kForRead);
        // Add the extended entity data to the entity
        prbX = pObj->xData(appname);
        pObj->close();
        // Print out the extended entity data
        // Here I know the order of the extended entity data
        pTemp = prbX;
        // Bypass the application name
        pTemp = pTemp->rbnext;
        acutPrintf("\nWindow Type = %s", pTemp->resval.rstring);
        pTemp = pTemp->rbnext;
        acutPrintf("\nRows = %d", pTemp->resval.rint);
        pTemp = pTemp->rbnext;
        acutPrintf("\nCols = %d", pTemp->resval.rint);
        pTemp = pTemp->rbnext;
        acutPrintf("\nLength = %.2lf", pTemp->resval.rreal);
        pTemp = pTemp->rbnext;
        acutPrintf("\nHeight = %.2lf", pTemp->resval.rreal);
        pTemp = pTemp->rbnext;
        acutPrintf("\nStart Point = (%.2lf, %.2lf)", pTemp->resval.rpoint[X], pTemp->resval.rpoint[Y]);
        acutRelRb(prbX);       
}
回复

使用道具 举报

22

主题

54

帖子

4

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
142
发表于 2004-7-20 08:14:00 | 显示全部楼层
非常感谢spaceh!
prbX = pObj->xData(appname);能不能换成pRb = appTable->xData(appname);能这样吗?这样又怎么办呢?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-5-25 20:29 , Processed in 2.129959 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表