日期:2014-05-16  浏览次数:20993 次

在variant中存入double型长数据再保存入Ole的问题
目的是将一个元素为double型的数组存入Ole对象中。

我先将它用SafeArray打包进varchunk,可是Appendchunk只能往Field中写入BYTE或者char类型~请问有没有什么好的解决方法?

------解决方案--------------------
可以转换成char,然后一个个字节写入
_variant_t varT;
CComSafeArray <char> arrayT;
char *pChMove=NULL;
double m[20];//需先赋值
long lVarSize = sizeof(double);
int carNum = 0;
for (int i=0;i <20;i++)
{
pChMove=(char*)m[i];
for (int j=0;j <lVarSize;j++)
{
arrayT[varNum]=*pChMove;
pBtMove++;
varNum++;
}
}
varT.vt = VT_ARRAY|VT_UI1;
varT.parray=arrayT.Detach();

使用varT,再调用AppendChunk()