描述:
我现在在做一个ASP组件, 目的是想把C++数据写回到浏览器中, 但是在用SafeArray时遇到问题, 因以前没有用过特此请教.
代码如下:
SAFEARRAYBOUND bound;
BYTE* pData = {.....};
bound[0].cElements = lDataSize;
bound[0].lLbound = 0;
pSafeArray = SafeArrayCreate(VT_UI1, 1, bound);
SafeArrayAccessData(pSafeArray, &lpData);
memcpy(lpData, pData, lDataSize);
SafeArrayUnaccessData(pSafeArray);
// creates the safearray to put the bin data
varByteArray.parray = pSafeArray;
// write the data to the Response interface
hr = m_piResponse ->BinaryWrite(varByteArray);
// destroy the safearray
SafeArrayDestroy(pSafeArray);
可是我在IE里什么也没得到. 要是换成下一句就可以看到字符.
CComVariant varData = _T("Hello!");
hr = m_piResponse ->BinaryWrite(varData);
换成字符串则没问题.不知为什么?
我看到有 SafeArrayAllocData 不知是否是在 SafeArrayCreate之后还要为其分配空间啊?