subject_41328.htm
来自「vc」· HTM 代码 · 共 54 行
HTM
54 行
<p>
序号:41328 发表者:无欲无求 发表日期:2003-05-26 11:47:54
<br>主题:VARIANT的问题,关于参数传递的
<br>内容:在我的COM组件中能够有一个函数,他的其中一个参数为X,(VARIANT X)<BR>但是在这个函数实现的时候,这个X是个数组<BR><BR>我在外部构造数组之后<BR>怎么作为参数传递过去
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:天才 回复日期:2003-05-26 17:45:51
<br>内容:我可能有一点经验,你能不能说清楚一点,最好有部分源码(是不是和SAP系统做接口?)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无欲无求 回复日期:2003-05-26 18:16:40
<br>内容:先谢过了<BR><BR>//产生所需的正弦波<BR> double* xdata=new double[40];<BR> for(int i=0;i<40;i++)<BR> {<BR> xdata[i]=sin((double)i);<BR> }<BR><BR>//创建COM实例Isgltest<BR> Itestvariant *st;<BR> HRESULT hr=::CoCreateInstance(CLSID_testvariant,NULL,CLSCTX_ALL,IID_Itestvariant,(void**)&st);<BR> if (FAILED(hr)) <BR> {<BR> AfxMessageBox("创建COM实例失败");<BR> }<BR> //<BR><BR>/*!!!!问题就在这里testfft的声明<BR>virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE testfft( <BR> /* [in] */ long nargout,<BR> /* [out][in] */ VARIANT __RPC_FAR *y,<BR> /* [in] */ VARIANT x) = 0;<BR> 这个函数的实现x是一个数组不知道怎么传递<BR>*/<BR><BR> //st->testfft();<BR><BR> st->Release();<BR> //释放COM组件<BR><BR>请问如何将数组xdata传递给x
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:天才 回复日期:2003-05-27 10:27:34
<br>内容:你看这样行不行<BR>_variant_t l_vt;<BR>l_vt.vt=VT_BYREF|VT_R8;<BR>l_vt.pdblVal=xdata;<BR>注意:调用COM接口之后再调用delete [] xdata;
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无欲无求 回复日期:2003-05-27 11:26:07
<br>内容:我不知道怎么样才能把我的问题描述清楚<BR>不知道你熟不熟悉Matlab<BR>testfft的原型是<BR>Matlab的.m函数<BR>function testfft<BR>fft(x);<BR>因此,在这里x本身就是一个矩阵,或者说是数组<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:天才 回复日期:2003-05-27 11:40:32
<br>内容:我觉得你已经表达清楚了,你有没有试一下我的方法?<BR>你将最后一个参数x定义成_variant_t,然后设置类型,接着赋值,最后调testfft<BR>在线等待结果回复...
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无欲无求 回复日期:2003-05-27 13:49:12
<br>内容:我试过了<BR>但是不行<BR>我的QQ:3399638
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:天才 回复日期:2003-05-27 18:04:11
<br>内容:给您一个建议,用www.google.com搜索英文网站(中文不可),可能会有帮助<BR>(另外我以前碰到过传_RecordsetPtr类型的,如_RecordsetPtr* m_pRS,直接用_variant_t((IDispatch *)(*m_pRS),true)赋给一个_variant_t类型的实例,然后用的时候用V_DISPATCH转回来就可以了。)<BR><BR>bye
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:无欲无求 回复日期:2003-05-27 23:28:41
<br>内容:谢谢你的帮助,我继续努力
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?