CString s;
s=(LPCTSTR)(_bstr_t)rs->GetCollect("Name");
但发生错误,中断在atlsimpstr.h里的这里,
int GetLength() const throw()
{
return( GetData()->nDataLength );
}
我看了很多_variant_t转换CString ,但都要出错,怎么解决呀,我用的VS2008(C++)
s=(LPCTSTR)(_bstr_t)rs->GetCollect("Name");
但发生错误,中断在atlsimpstr.h里的这里,
int GetLength() const throw()
{
return( GetData()->nDataLength );
}
我看了很多_variant_t转换CString ,但都要出错,怎么解决呀,我用的VS2008(C++)
然后用var去接收获取的数据 var = rs->GetCollect("Name");
判断:if(var.vt != VT_NULL)
s=(LPCTSTR)(_bstr_t)var;
strValue = (LPCTSTR)(_bstr_t)var;
我也是这样写的
就报这错呀
然后class->name就怎么都赋不过值了,这是为什么呀,哪位大哥能告诉我吧,这样做错在哪里了?
改成strValue = (char*)(_bstr_t)var;这样试试。
改了也不知,不知道为什么呢
后,CString s="xiaoming"
class->name=s
都会出错,无语呀,为什么呀
写了有段时间了
硬盘坏了 数据没了 什么都没了 杯具
记不太清了
好象是(LPWSTR)(LPCTSTR)(_bstr_t)
明天试试在给你回复
俺现在也是重写啊
{
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: //整型
case VT_I8: //长整型
strValue.Format("%d", var.lVal);
break;
case VT_UINT://无符号整型
strValue.Format("%d", var.uintVal);
break;
case VT_UI4: //无符号整型
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值
case VT_EMPTY://空
strValue = "";
break;
case VT_UNKNOWN://未知类型
default:
strValue = "UN_KNOW";
break;
}
return strValue;
}