佚名通过本文主要向大家介绍了
在方法里面如何才能把数组作为传出参数?我的疑问请看内文。等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 在方法里面如何才能把数组作为传出参数?我的疑问请看内文。
描述:
解决方案1:
描述:
下面是我的方法参数的IDL,为什么在COM+中配置成为进程外组件后,ppString返回不到正确的值呢?
[out]unsigned long *lpStringLen, [out,size_is(1,*lpStringLen)]BYTE **ppString
解决方案1:
关注
解决方案2: nmake -f projectnameps.mk
regsvr32 projectnameps.dll
是否注册了代理?进程外组件如果没有注册代理,这种类型的参数不能正确返回。
解决方案4:最好用VARIANT向 LeeZi(临渊羡鱼,不如退而结网)所说
解决方案5: HRESULT Func([out, retval] VARIANT* pVal);
HRESULT Func(VARIANT* pVal)
{
LONG Len; //传出数据的长度
_variant_t v;
v.vt = VT_ARRAY | VT_U1;
v.parrsy = ::SaveArrayCreateVector(VT_U1, 0, Len);
// 填入数据。
*pVal = v.Detach();
return S_OK;
}
洗耳恭听。。。。。