我想知道如何从resbuf链中删除最后一项,我已经尝试在尾部使用acutRelRb(),但AutoCAD会爆炸。
有什么想法吗?
- // ----- ads_crpssgetex symbol (do not rename)
- //++-- (crpSSGetEx ":$" "Add: " "Remove: " '((0 . "LINE")(8 . "0")))
- static int ads_crpssgetex(void)
- {
- struct resbuf *pTail ;
- struct resbuf *pArgs =acedGetArgs () ;
- if (pArgs == NULL)
- return RSERR;
- if (pArgs->restype != RTSTR )
- return RSERR;
- TCHAR *mode = pArgs->resval.rstring;
- if ((pArgs = pArgs->rbnext) == NULL || pArgs->restype != RTSTR )
- return RSERR;
- TCHAR *AddStr = pArgs->resval.rstring;
- if ((pArgs = pArgs->rbnext) == NULL || pArgs->restype != RTSTR )
- return RSERR;
- TCHAR *RemStr = pArgs->resval.rstring;
- if ((pArgs = pArgs->rbnext) != NULL)
- {
- if ((pArgs = pArgs->rbnext) != NULL)
- {
- resbuf *pItrBuf = pArgs;
- while(pItrBuf != NULL)
- {
- pTail = pItrBuf;
- pItrBuf = pItrBuf->rbnext;
- }
- // >>>>>>>>>>>>>>>>> want to delete pTail restype = 100 ; //workaround
- pTail->resval.rstring = L"AcDbEntity";//workaround
- }
- }
- TCHAR* promts[] = { AddStr , RemStr };
- ads_name set;
- if(acedSSGet(mode,promts,NULL,pArgs,set) == RTNORM)
- acedRetName(set,RTPICKS);
- // acedRetList(pArgs);
- return (RSRSLT) ;
- }
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |