在vb里:
Dim st As New ADODB.Stream
...改变st内容
Len(st.ReadText) '''' 结果是797,是正确结果在vc里:
ADODB::_StreamPtr pStm;
pStm.CreateInstance(__uuidof(ADODB::Stream));
...改变pStm内容,内容与VB里完全一样
_bstr_t bstr = pStm->ReadText(adReadAll);
bstr.length() //// 结果是261640为什么?VC下如何解决该问题?
Dim st As New ADODB.Stream
...改变st内容
Len(st.ReadText) '''' 结果是797,是正确结果在vc里:
ADODB::_StreamPtr pStm;
pStm.CreateInstance(__uuidof(ADODB::Stream));
...改变pStm内容,内容与VB里完全一样
_bstr_t bstr = pStm->ReadText(adReadAll);
bstr.length() //// 结果是261640为什么?VC下如何解决该问题?
得到:265510
我已经尝试:
1、BSTR bstr = NULL;
pStm->raw_ReadText(adReadAll, &bstr); //261640
2、CComBSTR bstr((BSTR)pStm->ReadText(adReadAll)); //结果也是261640
3、用LPCTSTR, wchar_t*,char *, CString, ConvertBSTRToString()等进行相关转换,
都得不到正确结果。
问题可能出现在ReadText返回的String(VB)本身有某些问题?