在網上找的VARIANT的用法,私藏了

2021-06-16 10:09:30 字數 1921 閱讀 7634

variant的結構可以參考標頭檔案vc98\include\oaidl.h中關於結構體tagvariant的定義。

struct  tagvariant

__variant_name_4;

} __variant_name_3;

} __variant_name_2;

decimal decval;

} __variant_name_1;

};對於variant變數的賦值:首先給vt成員賦值,指明資料型別,再對聯合結構中相同資料型別的變數賦值,舉個例子:

variant va;

int a=2001;

va.vt=vt_i4;///指明整型資料

va.lval=a; ///賦值

對於不馬上賦值的variant,最好先用void variantinit(variantarg far* pvarg);進行初始化,其本質是將vt設定為vt_empty,下表我們列舉vt與常用資料的對應關係:

unsigned char bval; vt_ui1 

short ival; vt_i2 

long lval; vt_i4 

float fltval; vt_r4 

double dblval; vt_r8 

variant_bool boolval; vt_bool 

scode scode; vt_error 

cy cyval; vt_cy 

date date; vt_date 

bstr bstrval; vt_bstr 

iunknown far* punkval; vt_unknown 

idispatch far* pdispval; vt_dispatch 

safearray far* parray; vt_array|* 

unsigned char far* pbval; vt_byref|vt_ui1 

short far* pival; vt_byref|vt_i2 

long far* plval; vt_byref|vt_i4 

float far* pfltval; vt_byref|vt_r4 

double far* pdblval; vt_byref|vt_r8 

variant_bool far* pboolval; vt_byref|vt_bool 

scode far* pscode; vt_byref|vt_error 

cy far* pcyval; vt_byref|vt_cy 

date far* pdate; vt_byref|vt_date 

bstr far* pbstrval; vt_byref|vt_bstr 

iunknown far* far* ppunkval; vt_byref|vt_unknown 

idispatch far* far* ppdispval; vt_byref|vt_dispatch 

safearray far* far* pparray; vt_array|* 

variant far* pvarval; vt_byref|vt_variant 

void far* byref; vt_byref

_variant_t是variant的封裝類,其賦值可以使用強制型別轉換,其建構函式會自動處理這些資料型別。

例如:

long l=222;

ing i=100;

_variant_t lval(l);

lval = (long)i;

colevariant的使用與_variant_t的方法基本一樣,請參考如下例子:

colevariant v3 = "字串", v4 = (long)1999;

cstring str =(bstr)v3.pbstrval;

long i = v4.lval;

VARIANT型別的用法

variant的結構可以參考標頭檔案vc98 include oaidl.h中關於結構體tagvariant的定義。對於variant變數的賦值 首先給vt成員賦值,指明資料型別,再對聯合結構中相同資料型別的變數賦值,舉個例子 variant va int a 2001 va.vt vt i4 指明...

在網上搜到的題目

文章出自網魂工作室 附錄c c c試題的答案與評分標準 一 請填寫bool float,指標變數 與 零值 比較的 if 語句。10分 請寫出 bool flag 與 零值 比較的 if 語句。3分 標準答案 if flag if flag 如下寫法均屬不良風格,不得分。if flag true i...

HBRUSH,網上找的哈

取畫刷 hbrush 的六種方法 hbrush hbr 第一種 hbr createsolidbrush rgb 255,0,0 單色的畫刷 第二種 hbr hbrush getstockobject black brush 只能取特定顏色的畫刷,如black brush,gray brush等刷 ...