日韩性视频-久久久蜜桃-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)之间的转化的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 波多野结衣潜藏淫欲 | 少妇特黄a一区二区三区88av | 婷婷丁香综合网 | 免费人成在线观看网站 | 婷婷另类小说 | 欧美日本黄色 | 国产xxx视频 | 人人妻人人澡人人爽人人精品 | 亚洲激情视频在线 | 怒海潜沙秦岭神树 | 李丽珍毛片 | 污的视频在线观看 | av国产免费| 亚洲欧美国产一区二区 | 我色综合| 国产又粗又猛又爽又黄91精品 | 亚洲黄色网址大全 | 无遮挡的裸体按摩的视频 | 午夜色大片| 精品日本视频 | 日韩成人av一区二区 | 免费观看黄色 | 九九热这里都是精品 | 亚洲精品国产无码 | 在线观看网页视频 | 久久久久久免费视频 | 久久人人爽| 成人在线视频观看 | 夜夜夜网 | 黄色在线免费观看网站 | 亚洲国产日本 | 人妻视频一区二区三区 | 色偷偷一区二区三区 | 成人免费va视频 | 黄色网址在线播放 | 91最新地址| 国产精品久久国产精品99 | 青青青在线 | 极品少妇一区 | 国产xxx在线观看 | 久久青青操 | 亚洲精品在线观看视频 | 亚洲精品一区在线观看 | 亚洲第二页 | 51国产偷自视频区视频 | 自拍视频在线播放 | 国产不卡在线观看视频 | 啪啪一区二区 | 国产人妻一区二区 | 综合天堂av久久久久久久 | 日韩欧美的一区二区 | 国产88av| 豆花视频成人 | 一吻定情2013日剧 | 不卡的日韩av | 超碰天天干 | jizz日本女人| 香蕉网在线播放 | 日日弄天天弄美女bbbb | av永久免费在线观看 | 草草草av | 久久精品国产亚洲AV高清综合 | 丝袜ol美脚秘书在线播放 | 亚州国产精品 | 182av| 免费观看的毛片 | 人妻丝袜一区二区三区 | 日日夜夜婷婷 | 黄网站色视频免费观看 | 在线观看成人动漫 | 屁股夹体温计调教play | 91草视频| 秋霞国产| 中国av免费看 | 欧美精品一区二区蜜桃 | 久久99国产精品久久99 | 欧美乱妇一区二区三区 | 亚洲黄色片子 | 欧美a级片在线观看 | 国产黄色免费看 | 国产一区二区三区在线观看免费 | 日韩精品一区二区三区免费视频 | 亚洲熟妇无码一区二区三区导航 | 在线免费观看黄色av | 久久久青草 | 亚洲一区二区三区四区在线 | 中文字幕欧美另类精品亚洲 | 国产一线二线三线女 | 国产精品第三页 | 无码视频一区二区三区 | 美女av免费在线观看 | 色综合久久久无码中文字幕波多 | 中国一级片黄色一级片黄 | 在线观看av片 | 青草视频在线观看视频 | www.好吊色 | 久久依人网 | 91无毒不卡| 欧美 日韩 国产 精品 |