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