rt,m_CListData.SetItemText(numline,8,((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("坐标x")));编译时没有错误,但是执行时说类型不匹配,,那位高手帮忙指点下这个怎么改阿

解决方案 »

  1.   

    将整形a转为字符串str
    int a;
    Cstring str;
    str.Format("%d",a);
      

  2.   

    对,用CString的Format函数,但是是%f吧?
      

  3.   

    不知道以下这个函数会不会对你有帮助!CString vartostr(const _variant_t &var)
    {
    CString strValue;

    switch (var.vt)
    {
    case VT_BSTR://字符串
    case VT_LPSTR://字符串
    case VT_LPWSTR://字符串
    strValue = (LPCTSTR)(_bstr_t)var;
    break;
    case VT_I1:
    case VT_UI1:
    strValue.Format("%d", var.bVal);
    break;
    case VT_I2://短整型
    strValue.Format("%d", var.iVal);
    break;
    case VT_UI2://无符号短整型
    strValue.Format("%d", var.uiVal);
    break;
    case VT_INT://整型
    strValue.Format("%d", var.intVal);
    break;
    case VT_I4: //整型
    strValue.Format("%d", var.lVal);
    break;
    case VT_I8: //长整型
    strValue.Format("%d", var.lVal);
    break;
    case VT_UINT://无符号整型
    strValue.Format("%d", var.uintVal);
    break;
    case VT_UI4: //无符号整型
    strValue.Format("%d", var.ulVal);
    break;
    case VT_UI8: //无符号长整型
    strValue.Format("%d", var.ulVal);
    break;
    case VT_VOID:
    strValue.Format("%8x", var.byref);
    break;
    case VT_R4://浮点型
    strValue.Format("%.4f", var.fltVal);
    break;
    case VT_R8://双精度型
    strValue.Format("%.8f", var.dblVal);
    break;
    case VT_DECIMAL: //小数
    strValue.Format("%.8f", (double)var);
    break;
    case VT_CY:
    {
    COleCurrency cy = var.cyVal;
    strValue = cy.Format();
    }
    break;
    case VT_BLOB:
    case VT_BLOB_OBJECT:
    case 0x2011:
    strValue = "[BLOB]";
    break;
    case VT_BOOL://布尔型 strValue = var.boolVal ? "TRUE" : "FALSE";
    break;
    case VT_DATE: //日期型
    {
    DATE dt = var.date;
    COleDateTime da = COleDateTime(dt); 
    strValue = da.Format("%Y-%m-%d %H:%M:%S");
    }
    break;
    case VT_NULL://NULL值
    strValue = "";
    break;
    case VT_EMPTY://空
    strValue = "";
    break;
    case VT_UNKNOWN://未知类型
    default:
    strValue = "UN_KNOW";
    break;
    }
    return strValue;
    }
      

  4.   

    m_CListData.SetItemText(numline,8,((LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("坐标x")));编译时没有错误,但是执行时说类型不匹配,,那位高手帮忙指点下这个怎么改阿你上面的多了一对(),改为
    m_CListData.SetItemText(numline,8,(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("坐标x"));试试看.
      

  5.   

    to:驴子 你那样不行啊to:阿丘 你那个有帮助,谢谢我按照下面的来执行,没有错误了,没有深入,也不知道这样有没有后遗症
    _variant_t m1;
    m1=m_pRecordset->GetCollect("坐标x");
    if(m1.vt !=VT_NULL)
    {
    m_CListData.SetItemText(numline,1,((LPCTSTR)(_bstr_t)m1));
    }