C++中将VARIANT转为CString
我从数据库中读出的字符串是例如“08:00:00”这样的时间字符串,但是用网上的转换函数转换出来的是乱码,求解
CString CGraph::VariantToString(VARIANT var)
{
CString strValue;
_variant_t var_t;
_bstr_t bst_t;
time_t cur_time;
CTime time_value;
COleCurrency var_currency;
switch(var.vt)
{
case VT_EMPTY:
strValue=_T("");
break;
case VT_UI1:
strValue.Format(_T("%d"),var.bVal);
break;
case VT_I2:
strValue.Format(_T("%d"),var.iVal);
break;
case VT_I4:
strValue.Format(_T("%d"),var.lVal);
break;
case VT_R4:
strValue.Format(_T("%f"),var.fltVal);
break;
case VT_R8:
strValue.Format(_T("%f"),var.dblVal);
break;
case VT_CY:
var_currency=var;
strValue=var_currency.Format(0);
break;
case VT_BSTR:
var_t=var;
bst_t=var_t;
strValue.Format (_T("%s"),(const char*)bst_t);
break;
case VT_NULL:
strValue=_T("");
break;
case VT_DATE:
cur_time = (long)var.date;
time_value=cur_time;
strValue=time_value.Format("%A,%B%d,%Y");
break;
case VT_BOOL:
strValue.Format(_T("%d"),var.boolVal );
break;
default:
strValue=_T("");
break;
}
return strValue;
}