日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

关于CString与VARIANT(CComVariant)之间的转化

發布時間:2023/12/13 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 关于CString与VARIANT(CComVariant)之间的转化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、VARIANT、CComVariant類與CString是什么:

CString是MFC定義的字符串類,VARIANT是COM標準為了使COM組件能夠被各種語言使用(vc++、vb、java、python等)而規定的一種統一型變量。即VARIANT能夠轉化成載體語言規定的變量類型,載體語言的變量類型也可以轉化成VARIANT類型。

CComVariant類對VARIANT進行了類封裝,并提供了操作方法。實際保存數據的仍然是CComVariant類封裝的VARIANT變量。

由于VARIANT實際上是一個Struct結構體,而實際上Struct結構體和Class是同一種數據類型,因此可以說CComVariant類是VARIANT的子類,因此兩者賦值的方法是一樣的(區別在于CComVariant封裝了一些方法:復制,清空,刪除變量,類型轉化等)。

二、VARIANT、CComVariant類初始化:

初始化用法:

VARIANT var;

var.vt=VT_BSTR; //vt屬性定義VARIANT類型

var.bstrVar=_T("test text");//bstrVar是VT_BSTR類型對應的存值變量

如上文,VARIANT賦值的方法是先確定變量的類型,然后給相應變量賦值,CComVariant類也可以這樣初始化,也可以通過類構造函數初始化。

vt取值可以為:VT_I2,VT_I4,VT_R4,VT_R8,VT_BSTR等,分別表示short,long,float,double,BSTR,對應的值分別存在iVal,lVal,fltVal,dblVal,bstrVar中。

具體可查詢VARIANT結構的規定。

參考文獻:https://blog.csdn.net/tangaowen/article/details/6553305

三、相互轉化:

1.CString轉VARIANT(CComVariant):

CString str=_T("test");

VARIANT var;

var.vt=VT_BSTR;

var.vstrVar=_bstr_t(str);//用MFC的_bstr_t類將CString字符串變量str包裝后賦值即可。

2.VARIANT轉CString

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:
rValue.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;

}
三、VARIANT內部結構

typedefstructtagVARIANT
{
VARTYPEvt;//存儲數據類型
unsignedshortwReserved1;
unsignedshortwReserved2;
unsignedshortwReserved3;
union
{
BytebVal;//VT_UI1.
ShortiVal;//VT_I2.
longlVal;//VT_I4.
floatfltVal;//VT_R4.
doubledblVal;//VT_R8.
VARIANT_BOOLboolVal;//VT_BOOL.
SCODEscode;//VT_ERROR.
CYcyVal;//VT_CY.
DATEdate;//VT_DATE.
BSTRbstrVal;//VT_BSTR.
DECIMALFAR*pdecVal//VT_BYREF|VT_DECIMAL.
IUnknownFAR*punkVal;//VT_UNKNOWN.
IDispatchFAR*pdispVal;//VT_DISPATCH.
SAFEARRAYFAR*parray;//VT_ARRAY|*.
ByteFAR*pbVal;//VT_BYREF|VT_UI1.
shortFAR*piVal;//VT_BYREF|VT_I2.
longFAR*plVal;//VT_BYREF|VT_I4.
floatFAR*pfltVal;//VT_BYREF|VT_R4.
doubleFAR*pdblVal;//VT_BYREF|VT_R8.
VARIANT_BOOLFAR*pboolVal;//VT_BYREF|VT_BOOL.
SCODEFAR*pscode;//VT_BYREF|VT_ERROR.
CYFAR*pcyVal;//VT_BYREF|VT_CY.
DATEFAR*pdate;//VT_BYREF|VT_DATE.
BSTRFAR*pbstrVal;//VT_BYREF|VT_BSTR.
IUnknownFAR*FAR*ppunkVal;//VT_BYREF|VT_UNKNOWN.
IDispatchFAR*FAR*ppdispVal;//VT_BYREF|VT_DISPATCH.
SAFEARRAYFAR*FAR*pparray;//VT_ARRAY|*.
VARIANTFAR*pvarVal;//VT_BYREF|VT_VARIANT.
voidFAR*byref;//GenericByRef.
charcVal;//VT_I1.
unsignedshortuiVal;//VT_UI2.
unsignedlongulVal;//VT_UI4.
intintVal;//VT_INT.
unsignedintuintVal;//VT_UINT.
charFAR*pcVal;//VT_BYREF|VT_I1.
unsignedshortFAR*puiVal;//VT_BYREF|VT_UI2.
unsignedlongFAR*pulVal;//VT_BYREF|VT_UI4.
intFAR*pintVal;//VT_BYREF|VT_INT.
unsignedintFAR*puintVal;//VT_BYREF|VT_UINT.
};
};

_bstr_t的使用方法

總結

以上是生活随笔為你收集整理的关于CString与VARIANT(CComVariant)之间的转化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人中文字幕 | 成人免费版 | 久九九 | 日本裸体xx少妇18在线 | 亚洲成人av | 国产在线激情视频 | 91久久综合亚洲鲁鲁五月天 | 亚洲在线播放 | 欧美日韩在线观看视频 | 永久免费看mv网站入口亚洲 | 在线电影一区二区 | 亚洲精品久久久久久一区二区 | 丰满人妻av一区二区三区 | 可以免费看黄的网站 | 日韩骚片| 精品无码人妻一区二区免费蜜桃 | 国产精品无码一区二区桃花视频 | 欧洲一区二区在线 | 免费日本黄色片 | 91精彩刺激对白 | 精品成人一区二区 | 蜜桃又黄又粗又爽av免 | 日韩二区在线 | 精品一区二区在线播放 | 日本少妇18p | 国产成a人亚洲精v品无码 | 久久视频中文字幕 | 插女生下面 | 亚洲vs天堂| 亚洲九九精品 | 暖暖视频日本 | 中文字幕无码不卡免费视频 | 中文字幕 人妻熟女 | 欧美视频一区二区三区四区在线观看 | 最近中文字幕在线mv视频在线 | 亚洲成人激情视频 | 午夜影视免费 | 日本人与黑人做爰视频 | 国产精品免费一区二区三区在线观看 | 骚视频在线观看 | 亚洲视频精品在线观看 | 国产午夜精品久久久久 | 国产精品扒开腿做爽爽爽视频 | 久久婷婷综合国产 | 国内偷拍第一页 | h片免费在线观看 | 亚洲一区二区av | 一本大道伊人av久久综合 | 日本一区二区三区网站 | 老女人人体欣赏a√s | 青青草原免费观看 | 成人免费av片 | 鲁一鲁av | 久久久国产打桩机 | 老熟妇午夜毛片一区二区三区 | 91大神小宝寻花在线观看 | 亚洲午夜一区二区三区 | 夜夜操夜夜摸 | 欧美日韩国产一区二区 | 秘密基地电影免费版观看国语 | 超碰cc| 国产视频1区2区3区 国产欧美一区二区精品性色99 | 欧美色图片区 | 97在线播放 | 中国一极毛片 | 久久久国产片 | 日韩欧美国产一区二区三区在线观看 | 人人干人人做 | 国产精品久久精品 | 激情中文字幕 | 国产免费黄色 | 天狂传说之巴啦啦小魔仙 | 91av中文字幕 | 污片视频在线观看 | 三点尽露的大尺度国产 | 麻豆性生活 | 成人日皮视频 | 美女视频黄色在线观看 | 精品动漫3d一区二区三区免费版 | 葵司ssni-879在线播放 | 一区二区三区免费在线视频 | 啪啪免费网址 | www.三区 | 激情午夜视频 | 春草 | 超薄肉色丝袜一二三 | 伊人久久av| 骚虎av在线 | 韩国伦理片在线观看 | 国产av不卡一区 | 日韩综合第一页 | 国产传媒在线观看 | 91丝袜国产在线观看 | 99婷婷 | 亚洲精品一区二区三区蜜桃 | 国产日产精品一区二区三区四区 | 91蜜臀精品国产自偷在线 | 95久久 | 男人操女人下面视频 |