魍_魉 发表于 2009-1-4 09:49:00

[求助]请教版主C++中正确使用CopyObjects函数的方法!

<p>自己写了一段代码如下:</p><p>&nbsp;&nbsp;CString blockName=pos-&gt;first;//得到块名<br/>&nbsp;&nbsp;CAcadBlock m_block=m_acadDoc.ObjectIdToObject(pos-&gt;second);//得到块对象,跟块名放在同一个Pair里<br/>&nbsp;&nbsp;std::vector&lt;long&gt; m_acadList=m_entityList; //得到实体的ID集合<br/>&nbsp;&nbsp;int num2=m_acadList.size();//得到实体数量<br/>&nbsp;&nbsp;CComVariant var1;<br/>&nbsp;&nbsp;var1.vt=VT_DISPATCH|VT_ARRAY;<br/>&nbsp;&nbsp;SAFEARRAYBOUND rgsabound;<br/>&nbsp;&nbsp;rgsabound.cElements=num2;<br/>&nbsp;&nbsp;rgsabound.lLbound=0;<br/>&nbsp;&nbsp;var1.parray=SafeArrayCreate(VT_VARIANT,1,rgsabound);<br/>&nbsp;&nbsp;for(long j=0;j&lt;num2;j++)<br/>&nbsp;&nbsp;{<br/>&nbsp;&nbsp;&nbsp;LPDISPATCH entity=m_acadDoc.ObjectIdToObject(m_acadList.at(j));//将实体从ID转换为IDispatch指针<br/>&nbsp;&nbsp;&nbsp;SafeArrayPutElement(var1.parray,&amp;j,entity);//加入到数组<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;CComVariant var2;<br/>&nbsp;&nbsp;var2.vt=VT_DISPATCH;<br/>&nbsp;&nbsp;var2.pdispVal=m_block;//将目标快由CAcadBlock对象转化为IDispatch指针</p><p>&nbsp;&nbsp;m_acadDoc.CopyObjects(var1,var2,NULL);调用拷贝函数,这句话有问题.</p><p>看了很多资料,都是用VB写的,用一个可变Object数组就可以了,可是我其他程序都是用C++完成,检查了很长时间,没有发现问题,只好求教版主了?谢谢</p>
页: [1]
查看完整版本: [求助]请教版主C++中正确使用CopyObjects函数的方法!