关于网友提出的“ Com 列集的奇怪问题”问题疑问,本网通过在网上对“ Com 列集的奇怪问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: Com 列集的奇怪问题描述:
组件A 的方法f大致如下:
STDMETHODIMP A::f(/*[out]*/long * ret)
{
....
CoMarshalInterThreadInterfaceInStream(...);
.....
*ret = 123;
}
客户端:
long ret = 2;
pInterface->f(&ret);
当CoMarshalInterThreadInterfaceInStream执行成功的时候,在客户端得到的ret是123;
当CoMarshalInterThreadInterfaceInStream执行失败的时候,在客户端得到的ret竟然是0;
可能的原因都有什么呢?
前提:在使用代理的情况下,例如:组件A(free),客户端(STA)
解决方案1:
把f的整个实现贴出来有助于解决问题。
解决方案2:同意,根本就没执行到 *ret = 123; 解决方案3:
出现了exception......