魍_魉 发表于 2009-1-5 14:38:00

CopyObjects中第一个参数实体数组怎么表示?

<p>看了很多代码,感觉在vb中只要定义Dim retVal() As AcadEntity,就可以调用CopyObjects,可是在c++中第一个参数是VARIANT*,到底怎样才能把CAcadEntity数组转化为VARIANT*呢?我现在使用的是:&nbsp;&nbsp;</p><p>CComVariant var1;<br/>var1.vt=VT_DISPATCH|VT_ARRAY;<br/>SAFEARRAYBOUND rgsabound;<br/>rgsabound.cElements=num2;<br/>rgsabound.lLbound=0;<br/>var1.parray=SafeArrayCreate(VT_VARIANT,1,rgsabound);<br/>for(long j=0;j&lt;num2;j++)<br/>{<br/>&nbsp;&nbsp;&nbsp;LPDISPATCH entity=m_acadDoc.ObjectIdToObject(m_acadList.at(j));<br/>&nbsp;&nbsp;&nbsp;SafeArrayPutElement(var1.parray,&amp;j,&amp;entity);</p><p>}</p><p>提出出错,到底该怎么办呢?非常感谢,着急ing</p><p></p>
页: [1]
查看完整版本: CopyObjects中第一个参数实体数组怎么表示?