本文共 1297 字,大约阅读时间需要 4 分钟。
1. VARIANT转CString, 也可以将参数类型改为_variant_t。
#include "comutil.h"
#pragma comment( lib, "comsupp.lib" )CString 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_NULL: strValue = _T( "" );break; 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 TCHAR*)bst_t ); break; case VT_DATE: cur_time = var.date; time_value = cur_time; strValue=time_value.Format( _T("%A,%B%d,%Y") ); break; case VT_BOOL: strValue.Format( _T("%d"), var.boolVal ); break; default:strValue = _T(""); break; } return strValue; }
2. _variant_t转int
int cardStatus ; var = pRecordset->GetCollect( _T("STATE") ); cardStatus = V_I2(&var);
3. _variant_t转char *
char p*;p = (char *)(_bstr_t)var;
4. CString 转为_variant_t:
CString str; _variant_t var; var = (_variant_t)(LPCTSTR)str;转载地址:http://mvtsi.baihongyu.com/