马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
以下是我做矩形阵列的代码,请大侠们办我分析一下错误原因,如何让函数AcAxArrayRectangular返回的HRESULT的值大于等于0
 - Acad::ErrorStatus es;
- ads_name ent;
- ads_point pt;
- AcDbObjectId Id;
- LPDISPATCH pDisp;
- VARIANT pArrayObjs;
- HRESULT hr;
- BeginEditorCommand();
- if (m_ss[0]!=0L||m_ss[1]!=0L)
- {
- //acedSSFree(m_ss);
- m_ss[0] = m_ss[1] = 0L;
- }
- //acedSSGet(_T(":S"),NULL,NULL,NULL,m_ss);
- if (acedEntSel(_T("\n请选择对象..."),m_ss,pt)==RTNORM)
- {
- CompleteEditorCommand();
-
- //通过对象标识转换函数得到为对象id
- es=acdbGetObjectId(Id,m_ss);
- if (Acad::eOk==es)
- {
- acutPrintf(_T("\n选择对象成功,开始阵列"));
- pDisp = acedGetAcadWinApp()->GetIDispatch(TRUE);
- VariantInit(&pArrayObjs);
- V_VT(&pArrayObjs)=VT_ARRAY|VT_DISPATCH;
-
- hr=AcAxArrayRectangular(Id,pDisp,1,3,1,1,20,1,&pArrayObjs);
- if (SUCCEEDED(hr))
- {
- acutPrintf(_T("\n成功"));
- }
- else if(FAILED(hr))
- {
- acutPrintf(_T("\n失败"));
- }
- }
- else{
- acutPrintf(_T("error"));
- }
- }
- else
- {
- CancelEditorCommand();
- }
|