几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(AutoLISP) (http://www.dimcax.com/hust/forumdisplay.php?f=178)
-   -   copyobjects中第一个参数实体数组怎么表示? (http://www.dimcax.com/hust/showthread.php?t=10575)

yang686526 2009-04-25 07:50 PM

copyobjects中第一个参数实体数组怎么表示?
 
copyobjects中第一个参数实体数组怎么表示?
www.dimcax.com
copyobjects中第一个参数实体数组怎么表示?
看了很多代码,感觉在vb中只要定义dim retval() as acadentity,就可以调用copyobjects,可是在c++中第一个参数是variant*,到底怎样才能把cacadentity数组转化为variant*呢?我现在使用的是:
variant var1;
var1.vt=vt_dispatch|vt_array;
safearraybound rgsabound[1];
rgsabound[0].celements=num2;
rgsabound[0].llbound=0;
var1.parray=safearraycreate(vt_dispatch,1,rgsabound);
for(long j=0;j<num2;j++)
{
lpdispatch entity=m_acaddoc.objectidtoobject(m_acadlist.at(j));
safearrayputelement(var1.parray,&j,&entity);
}
variant var2;
var2.vt=vt_dispatch;
var2.pdispval=m_block;
m_acaddoc.copyobjects(var1,var2,null);
经测试,一直到倒数第二行都没有错,可以从对应的idispatch正确还原其所代表的实体,看来只可能是最后一句出错了,到底是怎么回事呢,难道这种调用方式不正确?非常感谢,着急ing

没有知道吗?哭ing


所有的时间均为北京时间。 现在的时间是 07:39 PM.