VARIANT 转 CString 与 _variant_t 转 CString

来源:互联网 发布:小键盘软件下载 编辑:程序博客网 时间:2024/05/18 03:35

CString CSelectDlg::VariantToCString(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("%d",var.bVal);
break;
case VT_I2:
strValue.Format("%d",var.iVal);
break;
case VT_I4:
strValue.Format("%d",var.lVal);
break;
case VT_R4:
strValue.Format("%f",var.fltVal);
break;
case VT_R8:
strValue.Format("%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 ("%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("%d",var.boolVal );
break;
default: 
strValue=_T("");
break;
}
return strValue;
}

以上转自:http://shun926.spaces.live.com/blog/cns!F6F8EE79263D1718!114.trak
以上是我在使用数据库创建树控件时用到的类型转换。
不过_variant_t的变量我是这样转的:
CString m_str;
_variant_t v_str;
m_str.Format("%s", (LPCTSTR)(_bstr_t)v_str);
暂时使用没有遇到问题!
欢迎大家指正错误!!!!
原创粉丝点击