![]() |
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. |