_variant_t var= m_pRecordset->GetCollect("");
CString str1,str2;
str1 = (LPCSTR)_bstr_t(var);
MessageBox(str1);//内容显示正确,和str2完全一样
str2.Compare(str1);//这里永远得不到0,为什么?

解决方案 »

  1.   

    CString str1,str2;
    str2是一个字符串
      

  2.   

    _variant_t v1 = (_bstr_t)"xxx"; 
    CString str;
    str.Format("%s", _com_util::ConvertBSTRToString((_bstr_t)v1) );
      

  3.   

    _variant_t var= "kkkkk";
    CString str1,str2;
    str1 = (LPCSTR)_bstr_t(var);
    str2 = "kkkkk";
    MessageBox(str1);//内容显示正确,和str2完全一样
    int i = str2.Compare(str1);//这里永远得不到0,为什么完全可以啊!你看看你的m_pRecordset->GetCollect("");是不是有空格!
      

  4.   

    天天说的对,我的程序不是这样的,我的程序是在执行了下面一条语句后再比较字符串的
    var = m_pRecordset->GetCollect("user_psw");
    然后就比较不出大小了?这里应该怎样转换呢?
      

  5.   

    http://dev.csdn.net/develop/article/12/12365.shtm
      

  6.   

    http://dev.csdn.net/develop/article/25/25578.shtm
    CString g_GetValueString(const _variant_t& val)