CString转化为VARIANT类型字符串被省略,如何解决?
本情景在VC下使用OLE操作的Excel表格,由于创建的表格中含有多种类型的数据,故必须创建为VT_VARIANT类型。遇到CString类型被截断如何解决?大家给点建议啊。情况如下:
COleSafeArray sa;
sa.Create(VT_BSTR,2,numElements);
CString strTemp="111 222 333 444 555";
index[0]=1;index[1]=1;
BSTR bstr=strTemp.AllocSysString();
saRet.PutElement(index,bstr);
输出到Excel中结果为(正常):111 222 333 444 555
COleSafeArray sa;
sa.Create(VT_VARIANT,2,numElements);
CString strTemp="111 222 333 444 555";
index[0]=1;index[1]=1;
sa.PutElement(index,&_variant_t(strTemp));
输出到Excel中结果为(被省略):111 222 333 000 000