我在vc工程中使用ado。
我把工程加了_UNICODE的支持,结果在用GetCollect方法取得的数据是乱码,why?代码:
_bstr_t bstr = pRs->GetCollect(_T("字段名"));
CString str = bstr.copy();在变量查看中str是乱码,但bstr不是why?请高手指点,thanks!

解决方案 »

  1.   

    CString str=(char*)_bstr_t(bstr);
      

  2.   

    _variant_t vGet;
    vGet=m_pRs->GetCollect(_variant_t((LPCTSTR)m_TabName));
    if(vGet.vt==VT_NULL) return "";
    else 
    {
       vGet.ChangeType(VT_BSTR);
       return  (CString)vGet.bstrVal;
    }
    我是这么用的,肯定没问题
      

  3.   

    我知道了。
    用_UNICODE编译的时候在Watch窗口是看不到字符串的全部内容的。
    表现为:字符是单字节的字符串只能显示第一个字符
    字符是双字节的字符串显示为乱码
    查看内容可以用Memory窗口观察,并把窗口显示格式设为Wide Char,就可看到其正确的内容了。但不知如何让VC的Watch窗口能够正确显示UNICODE字符??