使用variant來傳遞引數意味著非強型別語言(例如vbscript)能夠呼叫使用強型別語言(c++)實現的方法。
variant的結構可以參考標頭檔案vc98\include\oaidl.h中關於結構體tagvariant的定義。
variant 資料型別在檔案oaidl.idl中定義如下:
[cpp]view plain
copy
struct
tagvariant __variant_name_4; /* vt_record */
} __variant_name_3;
} __variant_name_2;
decimal decval;
} __variant_name_1;
};
variant資料結構包含兩個域(如果不考慮保留的域)。vt域描述了第二個域的資料型別。為了使多種型別能夠在第二個域中出現,我們定義了乙個聯合結構。所以,第二個域的名稱隨著vt域中輸入值的不同而改變。用於指定vt域值情況的常量在聯合的定義中以每一行的注釋形式給出。
使用variant和variantarg資料結構要分兩步完全。舉乙個例子,讓我們考慮如下**:
[cpp]view plain
copy
long
lvalue = 999;
variant vparam;
vparam.vt = vt_i4;
vparam.lval = lvalue;
在第一行中指定資料型別。常量vt_i4表明在第二個域中將出現乙個long型的資料。根據型別variant的定義,可以得知,當乙個long型資料存入variant型別時,其第二個域使用的名稱是lval。
使用char指標時 需要分配空間
variant var;
char achvalue[2048] = ;
var.pcval = achvalue;
string strtest= var1.pcval;
SQL Server 2005 常用資料型別詳解
1.字串資料型別 char 此資料型別可儲存1 8000個定長字串,字串長度在建立時指定 如未指定,預設為char 1 每個字元占用1byte儲存空間。nchar 此資料型別可儲存1 4000個定長unicode字串,字串長度在建立時指定 如未指定,預設為nchar 1 每個字元占用2bytes儲存...
redis資料型別與資料操作
redis資料型別 string set key value get key 127.0.0.1 6379 1 set test1 value1 ok127.0.0.1 6379 1 get test1 value1 127.0.0.1 6379 1 hash hash是乙個string型別的fie...
blob資料型別 資料庫資料型別和基礎操作
資料庫是 按照資料結構來組織 儲存和管理資料的倉庫 是乙個長期儲存在計算機內的 有組織的 可共享的 統一管理的大量資料的集合。它並不是隨意儲存的,儲存資料是有規則的,要不查詢效率會很低,除了文字型別 整數型別還有像能儲存影象 聲音這樣二進位制資料的blob型別。資料庫型別 資料表字段型別 常見字段種...