• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            C++ Programmer's Cookbook

            {C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

            objectARX常用代碼2

            設置當前的layer和textstyle
            // ?Function?name????:?SetCurTextStyle
            // ?Description????????:?設置當前TextStyle
            // ?Return?type????????:?Acad::ErrorStatus?
            // ?Argument?????????:?const?char*?lpStyleName
            // ?Argument?????????:?AcDbDatabase*?pDb/*?=?NULL?*/
            Acad::ErrorStatus?SetCurTextStyle( const ? char * ?lpStyleName,?AcDbDatabase * ?pDb /* ?=?NULL? */ )
            {
            ????AcDbDatabase
            * ?pCurDb? = ?pDb;
            ????
            if ?(pCurDb? == ?NULL)
            ????????pCurDb?
            = ?acdbHostApplicationServices() -> workingDatabase();

            ????AcDbTextStyleTableRecordPointer?spRecord(lpStyleName,?pCurDb,?AcDb::kForRead);
            ????Acad::ErrorStatus?es?
            = ?spRecord.openStatus();
            ????
            if ?(es? == ?Acad::eOk)
            ????
            {
            ????????es?
            = ??pCurDb -> setTextstyle(spRecord -> objectId());
            ????}

            ????
            return ?es;
            }



            // ?Function?name????:?SetCurLayer
            // ?Description????????:?設置當前層
            // ?Return?type????????:?Acad::ErrorStatus?
            // ?Argument?????????:?const?char*?lpLayerName
            // ?Argument?????????:?AcDbDatabase*?pDb/*?=?NULL?*/
            Acad::ErrorStatus?SetCurLayer( const ? char * ?lpLayerName,?AcDbDatabase * ?pDb /* ?=?NULL? */ )
            {
            ????AcDbDatabase
            * ?pCurDb? = ?pDb;
            ????
            if ?(pCurDb? == ?NULL)
            ????????pCurDb?
            = ?acdbHostApplicationServices() -> workingDatabase();

            ????AcDbLayerTableRecordPointer?spRecord(lpLayerName,?pCurDb,?AcDb::kForRead);
            ????Acad::ErrorStatus?es?
            = ?spRecord.openStatus();
            ????
            if ?(es? == ?Acad::eOk)
            ????
            {
            ????????es?
            = ??pCurDb -> setClayer(spRecord -> objectId());
            ????}

            ????
            return ?es;
            }



            //功能描述:選擇指定圖層上的所有實體!

            // ************************************************************************
            // 函數名稱:selectEntityInLayer
            // 函數類型:Acad::ErrorStatus?
            // 返回值:??正常:Acad::eOk
            // 功能描述:選擇指定圖層上的所有實體!
            // 函數作者:Darcy
            // 創建日期:200X-XX-XX
            // 參數列表:
            // 變量名:nLayerName?????變量類型:const?char*???????????變量說明:(輸入)圖層名
            // 變量名:nIDs???????????變量類型:AcDbObjectIdArray&????變量說明:(輸出)圖層中實體的對象標識符集合
            // ************************************************************************
            Acad::ErrorStatus?selectEntityInLayer( const ? char * ?nLayerName,AcDbObjectIdArray & ?nIDs)
            {
            ????Acad::ErrorStatus?es?
            = ?Acad::eOk;

            ????ads_name?ents;
            ????
            struct ?resbuf? * rb;
            ????rb
            = acutNewRb(AcDb::kDxfLayerName);
            ????rb
            -> restype = 8 ;
            ????rb
            -> resval.rstring = ( char * )nLayerName;
            ????rb
            -> rbnext = NULL;
            ????acedSSGet(
            " X " ,NULL,NULL,rb,ents);
            ????
            long ?entNums = 0 ;
            ????acedSSLength(ents,
            & entNums);
            ????
            if ?(entNums? == ? 0 )
            ????????es?
            = ?Acad::eInvalidInput;
            ????
            else
            ????
            {
            ????????
            for ?( long ?a? = ? 0 ;?a? < ?entNums?;?a? ++ )
            ????????
            {
            ????????????AcDbObjectId??objId;
            ????????????ads_name??????ent;
            ????????????acedSSName(ents,a,ent);
            ????????????acdbGetObjectId(objId,?ent);
            ????????????nIDs.append(objId);
            ????????}

            ????}

            ????acedSSFree(ents);
            ????acutRelRb(rb);

            ????
            return ?es;
            }
            另一種實現
            //************************************************************************
            //函數名稱:selectEntityInLayer
            //函數類型:Acad::ErrorStatus?
            //返回值:
            //功能描述:選擇指定層上的實體,得到其對象屬性標識符!
            //函數作者:Darcy
            //創建日期:200X-XX-XX
            //參數列表:
            //變量名:nLayerName??????變量類型:CString???????????????變量說明:
            //變量名:nIDs????????????變量類型:AcDbObjectIdArray&????變量說明:
            //變量名:nModelSpace?????變量類型:bool??????????????????變量說明:
            //************************************************************************
            Acad::ErrorStatus????selectEntityInLayer(
            ?????????????????????????????????????????CString?nLayerName,
            ?????????????????????????????????????????AcDbObjectIdArray
            &?nIDs,
            ?????????????????????????????????????????
            bool?nModelSpace
            ?????????????????????????????????????????)
            {
            ????Acad::ErrorStatus?es
            =Acad::eOk;?

            ????AcDbBlockTable
            *????????pBlockTable=NULL;
            ????AcDbBlockTableRecord
            *??pSpaceRecord=NULL;
            ????
            if?(acdbHostApplicationServices()->workingDatabase()==NULL)
            ????????
            return?Acad::eNoDatabase;
            ????
            if?((es?=?acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable,?AcDb::kForRead))==Acad::eOk)
            ????
            {
            ????????
            char?entryName[13];
            ????????
            if?(nModelSpace)
            ????????????strcpy(entryName,ACDB_MODEL_SPACE);
            ????????
            else
            ????????????strcpy(entryName,ACDB_PAPER_SPACE);
            ????????
            //Get?the?Model?or?Paper?Space?record?and?open?it?for?read:??
            ????????if?((es?=?pBlockTable->getAt((const?char*)entryName,?pSpaceRecord,?AcDb::kForRead))==Acad::eOk)
            ????????
            {
            ????????????????AcDbBlockTableRecordIterator
            *?pIter;
            ????????????????
            if?(pSpaceRecord->newIterator(pIter)==Acad::eOk)
            ????????????????
            {
            ????????????????????
            for?(pIter->start();!pIter->done();pIter->step())
            ????????????????????
            {
            ????????????????????????
            char?*name=NULL;
            ????????????????????????AcDbEntity
            *?pEntity;
            ????????????????????????
            if?(pIter->getEntity(pEntity,AcDb::kForRead)==Acad::eOk)
            ????????????????????????
            {
            ????????????????????????????name
            =pEntity->layer();
            ????????????????????????????
            if?(nLayerName.CompareNoCase(name)==0)
            ????????????????????????????????nIDs.append(pEntity
            ->objectId());

            ????????????????????????????pEntity
            ->close();
            ????????????????????????????acutDelString(name);?
            ????????????????????????}

            ????????????????????}

            ????????????????????delete?pIter;
            ????????????????}
            ????????????
            ????????????????pSpaceRecord
            ->close();
            ????????}
            ???
            ????????pBlockTable
            ->close();
            ????}


            ????
            return?es;
            }



            生成新組
            //生成新組(sGroupName)
            //追加數組中所有實體到該組中
            //組名字?,???Id數組
            int?createGroup(CString?sGroupName,
            ???????????????????????????????????
            const?AcDbObjectIdArray?*idArr)
            {
            ????AcDbGroup???????
            *pGroup?=?new?AcDbGroup((LPSTR)(LPCTSTR)sGroupName);
            ????AcDbObjectId?????groupObjectId;
            ????AcDbDictionary??
            *pGroupDict?=?NULL;

            ????acdbHostApplicationServices()
            ->workingDatabase()
            ????????
            ->getGroupDictionary(pGroupDict,?AcDb::kForWrite);
            ????pGroupDict
            ->setAt(sGroupName,?pGroup,?groupObjectId);
            ????pGroupDict
            ->close();
            ??????pGroup
            ->close();
            ????acdbOpenObject(pGroup,?groupObjectId,?AcDb::kForWrite);
            ????
            for?(int?i?=?0;?i?<?idArr->length();?i++)
            ????
            {
            ????????groupObjectId?
            =?idArr->at(i);
            ????????pGroup
            ->append(groupObjectId);???
            ????}

            ????pGroup
            ->close();
            ????
            return?TRUE;
            }

            另一個
            Acad::ErrorStatus?CDrawFunction::createGroup(CString?groupname,AcDbObjectIdArray?IdArray)
            {
            Acad::ErrorStatus?es
            =Acad::eOk;
            AcDbDictionary?
            *pGroupDict=NULL;
            AcDbGroup?
            *pGroup=NULL;
            if((es=acdbHostApplicationServices()->workingDatabase()->getGroupDictionary(pGroupDict,AcDb::kForWrite))!=Acad::eOk)
            {
            return?es;
            }

            AcDbObjectId?groupId;
            es
            =pGroupDict->getAt(groupname,groupId);
            if(es==Acad::eInvalidKey)
            {
            acutPrintf(
            "\n輸入的詞典名無效!");
            pGroupDict
            ->close();
            return?es;
            }

            else?if(es==Acad::eKeyNotFound)
            {
            pGroup
            =new?AcDbGroup("GroupDiscription");
            if((es=pGroupDict->setAt(groupname,pGroup,groupId))!=Acad::eOk)
            {
            pGroup
            ->close();pGroupDict->close();return?es;
            }

            }

            else?if(es==Acad::eOk?)
            {
            if((es=acdbOpenObject(pGroup,groupId,AcDb::kForWrite))!=Acad::eOk)
            {
            pGroupDict
            ->close();return?es;
            }

            }

            for(int?i=0;i?pGroup->append(IdArray[i]);
            pGroup
            ->setSelectable(FALSE);
            pGroupDict
            ->close();
            pGroup
            ->close();
            return?es;
            }

            旋轉整個group
            void?CMyDatabase::rotationGroup(CString?strGroupName?,CReiPoint?ptRotation,double?rotationAngle)?
            {
            ????AcGePoint3d?pt;
            ????AcDbDictionary?
            *pGroupDict;
            ????acdbCurDwg()
            ->getGroupDictionary(pGroupDict,AcDb::kForWrite);
            ????AcDbObjectId?groupId;
            ????AcDbGroup?
            *pGroup;
            ????pt.x
            =ptRotation.x;
            ????pt.y
            =ptRotation.y;
            ????pt.z
            =ptRotation.z;
            ????
            if(pGroupDict->getAt(strGroupName,groupId)==Acad::eOk)
            ???????acdbOpenObject(pGroup,groupId,AcDb::kForWrite);
            ????
            else
            ????
            {
            ????????pGroupDict
            ->close();
            ????????
            return;
            ????}

            ????pGroupDict
            ->close();
            ????AcDbGroupIterator
            *?pIter=pGroup->newIterator();
            ????AcDbEntity
            *?pEnt;
            ????AcDbObjectId?objId;
            ????????pIter
            =pGroup->newIterator();
            ????
            for(;!pIter->done();pIter->next())
            ????
            {
            ????????objId
            =pIter->objectId();
            ????????acdbOpenAcDbEntity(pEnt,objId,AcDb::kForWrite);
            ????????rotationEntity(pEnt,pt,rotationAngle);
            ????????pEnt
            ->close();
            ????}

            ????delete?pIter;
            ????pGroup
            ->close();
            }


            新建一個圖層
            //==========================================================
            功能:新建一個圖層
            參數:LayerName?
            --?圖層名,LayerColor?--?顏色名
            返回:圖層ID
            //==========================================================
            AcDbObjectId?CreateNewLayer(CString?LayerName,?AcCmColor?LayerColor)
            {
            ????
            //?獲得當前圖形數據庫的符號表
            ????AcDbLayerTable?*pLayerTable;
            ????acdbHostApplicationServices()
            ->workingDatabase()->getSymbolTable(pLayerTable,
            ????????AcDb::kForWrite);
            ????
            //?生成新的圖層表記錄
            ????AcDbLayerTableRecord?*pLayerTableRecord?=?new?AcDbLayerTableRecord;
            ????pLayerTableRecord
            ->setName(LayerName);????????//?設置圖層名
            ????pLayerTableRecord->setColor(LayerColor);????//?設置圖層顏色
            ????AcDbObjectId?layerId;
            ????pLayerTable
            ->add(layerId,pLayerTableRecord);
            ????
            //?關閉圖層表和圖層表記錄
            ????pLayerTable->close();
            ????pLayerTableRecord
            ->close();
            ????
            return?layerId;
            }


            //==========================================================
            功能:在指定圖層上新建一條直線
            參數:見注釋
            返回:直線ID
            //==========================================================
            AcDbObjectId?CreateLine(?double?x1,double?y1,double?z1,??//?起點坐標
            ?????????????????????double?x2,double?y2,double?z2,??//?終點坐標
            ?????????????????????AcDbObjectId?layer)???????????????????//?直線所在圖層
            {
            ????AcGePoint3d?StartPt(x1,y1,z1);????
            //?起點
            ????AcGePoint3d?EndPt(x2,y2,z2);????//?終點
            ????AcDbLine?*pLine?=?new?AcDbLine(StartPt,EndPt);
            ????
            //?獲得當前圖形數據庫的符號表
            ????AcDbBlockTable?*pBlockTable;
            ????acdbHostApplicationServices()
            ->workingDatabase()->getSymbolTable(pBlockTable,
            ????????AcDb::kForRead);
            ????
            //?獲得符號表中的模型空間塊表記錄指針,用于添加對象
            ????AcDbBlockTableRecord?*pBlockTableRecord;
            ????pBlockTable
            ->getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);
            ????pBlockTable
            ->close();
            ????
            //?將直線添加到模型空間塊表記錄中
            ????AcDbObjectId?lineId;
            ????pLine
            ->setLayer(layer,Adesk::kTrue);????//?設置直線所在圖層
            ????pBlockTableRecord->appendAcDbEntity(lineId,pLine);
            ????
            //?關閉塊表記錄指針和直線指針
            ????pBlockTableRecord->close();
            ????pLine
            ->close();
            ????
            //?返回直線ID號
            ????return?lineId;
            }


            不太常用的啊
            已知一段弧的起點和終點以及其凸度,求其圓心?

            int?getCenter(ads_point?startPoint,ads_point?endPoint,double?bulge,ads_point&?center)
            {
            if?(bulge==0.0)
            {
            ads_point_set(startPoint,center);
            return?0;
            }

            ads_point?startPt,endPt;
            if?(bulge<0.0)
            {
            ads_point_set(endPoint,startPt);
            ads_point_set(startPoint,endPt);
            bulge
            =bulge*(-1.0);
            }

            else
            {
            ads_point_set(startPoint,startPt);
            ads_point_set(endPoint,endPt);
            }

            double?distStartToEnd,distX,distY,radius;
            distStartToEnd
            =ads_distance(startPt,endPt);
            distX
            =distStartToEnd/2.0;
            distY
            =bulge*distX;
            radius
            =((distX*distX)+(distY*distY))/(2.0*distY);

            double?tmpAng;
            ads_point?tmpPt;

            tmpAng
            =ads_angle(startPt,endPt);
            ads_polar(startPt,tmpAng,distX,tmpPt);
            ads_polar(tmpPt,(tmpAng
            +(_PI/2.0)),(radius-distY),center);
            return?1;

            }
            ;?


            create hatch的

            AcDbObjectId?CreateHatch(
            AcDbObjectId?dbOId,
            char?cLayer[],?
            char?cPattern[]?=?"SOLID",?
            int?nColor?=?256,?
            double?dAngle?=?0.0,?
            double?dScale?=?1.0,?
            AcDbDatabase?
            *?pDbDatab?=?acdbHostApplicationServices()->workingDatabase())
            {
            AcCmColor?CmC;
            AcDbObjectId?DbOId;
            AcDbObjectIdArray?DbOIdA(
            0,?2);
            AcDbBlockTable?
            *?pDbBT;
            AcDbBlockTableRecord?
            *?pDbBTR;
            AcGeVector3d?normal(
            0.0,?0.0,?1.0);

            DbOIdA.append(dbOId);

            AcDbHatch
            *?pDbHat?=?new?AcDbHatch();

            pDbHat
            ->setDatabaseDefaults();

            pDbHat
            ->setAssociative(Adesk::kTrue);?//?BUG:?doesn't?do?squat!?have?to?set?the?reactor?yourself?to?get?associativity!

            pDbHat
            ->appendLoop(AcDbHatch::kExternal,?DbOIdA);

            pDbHat
            ->setPatternScale(dScale);

            pDbHat
            ->setPatternAngle(dAngle);

            pDbHat
            ->setPattern(AcDbHatch::kPreDefined,?cPattern);

            pDbHat
            ->setNormal(normal);

            pDbHat
            ->evaluateHatch();?//?crucial?call?or?nothing?gets?displayed!

            pDbDatab
            ->getSymbolTable(pDbBT,?AcDb::kForRead);

            pDbBT
            ->getAt(ACDB_MODEL_SPACE,?pDbBTR,?AcDb::kForWrite);

            pDbBTR
            ->appendAcDbEntity(DbOId,?pDbHat);

            pDbHat
            ->setLayer(cLayer);

            CmC.setColorIndex(nColor);

            ((AcDbEntity?
            *)pDbHat)->setColor(CmC);

            pDbBT
            ->close();

            pDbBTR
            ->close();

            pDbHat
            ->close();

            return?DbOId;

            }


            前陣困擾我的問題解決了,現在共享給大家:
            //************************************************************************
            //函數名稱:getPointAtDistInGeCurve
            //函數類型:Acad::ErrorStatus?
            //返回值:
            //功能描述:返回曲線上距起點某距離值處的點。
            //函數作者:Darcy
            //創建日期:2003-XX-XX
            //參數列表:
            //變量名:pGeCurve?變量類型:const?AcGeCurve3d?*?變量說明:
            //變量名:dist?變量類型:double?變量說明:
            //變量名:point?變量類型:AcGePoint3d&?變量說明:
            //備?注:
            //************************************************************************
            Acad::ErrorStatus?getPointAtDistInGeCurve(const?AcGeCurve3d?*?pGeCurve,double?dist,AcGePoint3d&?point)
            {
            Acad::ErrorStatus?es?
            =?Acad::eOk;

            if?(?pGeCurve?!=?NULL?)
            {
            AcGePoint3d?spt;
            double?pa=0.,datumParam=0.;
            //距離從起點起算!
            Adesk::Boolean?posParamDir=Adesk::kTrue;

            pGeCurve
            ->hasStartPoint(spt);?

            datumParam?
            =?pGeCurve->paramOf(spt);;

            pa?
            =?pGeCurve->paramAtLength(
            datumParam,
            dist,
            posParamDir
            );

            point
            =pGeCurve->evalPoint(pa);
            }

            else
            es?
            =?Acad::eInvalidInput;

            return?es;
            }
            ?

            判斷點是否在圓弧上
            /*****************************************************/
            BOOL
            IsAtArc(CAD_POINT?firstPt,CAD_POINT?secondPt,
            double?radius,double?direct,int?More,CAD_POINT?thePt)
            /*?判斷某點是否在圓弧上
            firstPt?圓弧起點
            secondPt?圓弧終點?
            radius?半徑
            direct?偏向(?>=0__左偏?<0__右偏?)
            More?(More<0__小圓弧,More>0__大圓弧)
            thePt?判斷點
            返回:TRUE__在圓弧上?FALSE__不在圓弧上
            */

            {
            CAD_POINT?centerPt,sectionPt;
            CAD_POINT?startPt,endPt;
            double?startAngle,endAngle,chordAngle,vertAngle;
            double?intLine,chordLine;
            /*?centerPt?圓弧圓心
            sectionPt?弦線中心點
            startAngle?圓弧起點切線角度(弧度)
            endAngle?圓弧終點切線角度(弧度)
            chordAngle?弦線角度(弧度)
            vertAngle?與弦線垂直的垂線角度(弧度)
            intLine?弦線中心至圓心距離
            chordLine?弦線長度
            */
            ?
            sectionPt.x?
            =?(firstPt.x?+?secondPt.x)/2;
            sectionPt.y?
            =?(firstPt.y?+?secondPt.y)/2;

            chordLine?
            =?sqrt(?pow(?(secondPt.x-firstPt.x),2?)?+?pow(?(secondPt.y-firstPt.y),2?)?);
            intLine?
            =?sqrt((radius*radius-chordLine*chordLine/4)?);

            chordAngle?
            =?ads_angle(asDblArray(firstPt),asDblArray(secondPt));?//弦線的角度

            if(direct>=0)//左偏
            {
            startPt
            =firstPt;
            endPt
            =secondPt;
            vertAngle
            =chordAngle+Pai/2;
            }

            else?if(direct<0)//右偏
            {
            startPt
            =secondPt;
            endPt
            =firstPt;
            vertAngle
            =chordAngle-Pai/2;
            }


            if(More<=0)//小圓弧
            {
            centerPt.x
            =sectionPt.x+intLine*cos(vertAngle);
            centerPt.y
            =sectionPt.y+intLine*sin(vertAngle);
            }

            else//大圓弧
            {
            centerPt.x
            =sectionPt.x-intLine*cos(vertAngle);
            centerPt.y
            =sectionPt.y-intLine*sin(vertAngle);
            }


            if(fabs(centerPt.distanceTo(thePt)-radius)>1.0E-8)
            return?FALSE;
            startAngle?
            =?ads_angle(asDblArray(centerPt),asDblArray(startPt));?
            endAngle?
            =?ads_angle(asDblArray(centerPt),asDblArray(endPt));?

            AcDbArc?
            *pArc=new?AcDbArc(centerPt,radius,startAngle,endAngle);
            AcDbLine?
            *pLine=new?AcDbLine(centerPt,thePt);
            AcGePoint3dArray?Points;
            pLine
            ->intersectWith(pArc,AcDb::kOnBothOperands,Points);
            if(Points.isEmpty())?return?FALSE;

            return?TRUE;
            }


            相object加xdata
            void?affixXdata(char?*appName,?char?*xData,?AcDbObject?*pObj)
            {
            ????
            //向AcDbObject添加擴展數據Xdata
            ????struct?resbuf?*pRb,?*pTemp;

            ????acdbRegApp(appName);
            ????pRb?
            =?acutNewRb(AcDb::kDxfRegAppName);
            ????pTemp?
            =?pRb;
            ????pTemp
            ->resval.rstring?=?new?char[strlen(appName)+1];
            ????strcpy(pTemp
            ->resval.rstring,?appName);

            ????pTemp
            ->rbnext?=?acutNewRb(AcDb::kDxfXdAsciiString);
            ????pTemp?
            =?pTemp->rbnext;
            ????pTemp
            ->resval.rstring?=?new?char[strlen(xData)+1];
            ????strcpy(pTemp
            ->resval.rstring,?xData);

            ????pObj
            ->setXData(pRb);
            ????acutRelRb(pRb);
            }


            //添加擴展數據
            //實體添加擴展數據(字符串)
            bool?AddXData(CString?appName,?AcDbObjectId?entId,CString?data)
            {
            //open?entity?for?read
            AcDbEntity*pEnt;
            Acad::ErrorStatus?es
            =acdbOpenAcDbEntity(pEnt,entId,AcDb::kForRead);
            if(es!=Acad::eOk)
            {
            ads_printf(
            "error?in?open?entity\n");
            return?false;
            }

            //get?XData?buffer
            struct?resbuf*pRb,*pTemp;
            pRb
            =pEnt->xData(appName);
            if(pRb!=NULL)//have?XData
            {
            //pTemp移到表尾
            pTemp=pRb;
            for(pTemp=pRb;pTemp->rbnext!=NULL;pTemp=pTemp->rbnext){;}
            }

            else//NOT?have?XData
            {
            //create?new?xData
            ads_regapp(appName);
            pRb
            =ads_newrb(AcDb::kDxfRegAppName);
            pRb
            ->resval.rstring=(char*)malloc(appName.GetLength()+1);
            strcpy(pRb
            ->resval.rstring,appName);
            pTemp
            =pRb;
            }

            //fill?xData?string
            pTemp->rbnext=ads_newrb(AcDb::kDxfXdAsciiString);
            pTemp
            =pTemp->rbnext;
            pTemp
            ->resval.rstring=(char*)malloc(data.GetLength()+1);
            strcpy(pTemp
            ->resval.rstring,data);
            //add?xData
            es=pEnt->upgradeOpen();
            if(es!=Acad::eOk)
            {
            ads_printf(
            "\nError?occur?in?updateOpen.");
            pEnt
            ->close();
            ads_relrb(pRb);
            return?false;
            }

            es
            =pEnt->setXData(pRb);
            if(es!=Acad::eOk)
            {
            ads_printf(
            "\nError?occur?in?setXData.");
            pEnt
            ->close();
            ads_relrb(pRb);
            return?false;
            }

            //
            pEnt->close();
            ads_relrb(pRb);
            return?true;
            }

            posted on 2006-06-26 16:35 夢在天涯 閱讀(3859) 評論(0)  編輯 收藏 引用 所屬分類: ARX/DBX

            公告

            EMail:itech001#126.com

            導航

            統計

            • 隨筆 - 461
            • 文章 - 4
            • 評論 - 746
            • 引用 - 0

            常用鏈接

            隨筆分類

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            •  

            積分與排名

            • 積分 - 1804360
            • 排名 - 5

            最新評論

            閱讀排行榜

            欧美精品乱码99久久蜜桃| 国内精品伊人久久久久妇| 亚洲精品乱码久久久久久按摩 | 久久天天躁狠狠躁夜夜躁2014| 一本久久久久久久| 久久综合丝袜日本网| 久久夜色tv网站| 国产精品久久久久久久午夜片| 久久中文娱乐网| 国产成人精品久久一区二区三区av| 久久综合欧美成人| 日本久久久精品中文字幕| 99久久精品九九亚洲精品| 99久久精品免费观看国产| 久久996热精品xxxx| 国内精品久久久久久久久| 欧美日韩中文字幕久久久不卡 | 怡红院日本一道日本久久 | 久久久婷婷五月亚洲97号色| 狠狠色婷婷综合天天久久丁香| 久久综合欧美成人| 久久久久亚洲精品无码网址| 99久久综合国产精品免费| 色综合久久无码中文字幕| 国产一区二区精品久久| 久久www免费人成看国产片| 亚洲性久久久影院| 蜜臀av性久久久久蜜臀aⅴ| 国产精品天天影视久久综合网| 国产精品丝袜久久久久久不卡| 久久伊人精品青青草原日本| 久久久午夜精品福利内容| 久久w5ww成w人免费| 精品乱码久久久久久夜夜嗨| 精品久久久久久久久免费影院| 精品熟女少妇av免费久久| 久久精品国产91久久麻豆自制| 婷婷久久综合| 国产精品久久久久久福利漫画| 人妻系列无码专区久久五月天| 久久婷婷激情综合色综合俺也去 |