`
omygege
  • 浏览: 1353094 次
文章分类
社区版块
存档分类
最新评论

_variant_t数据类型

 
阅读更多

_variant_t类封闭了VARIANT数据类型,VARIANT是一个结构体类型,我们可以看一下它的定义

typedef struct tagVARIANT {
VARTYPE vt;
unsigned short wReserved1;
unsigned short wReserved2;
unsigned short wReserved3;
union {
Byte 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.
DECIMAL FAR* pdecVal // VT_BYREF|VT_DECIMAL.
IUnknown FAR* punkVal; // VT_UNKNOWN.
IDispatch FAR* pdispVal; // VT_DISPATCH.
SAFEARRAY FAR* parray; // VT_ARRAY|*.
Byte 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; // Generic ByRef.
char cVal; // VT_I1.
unsigned short uiVal; // VT_UI2.
unsigned long ulVal; // VT_UI4.
int intVal; // VT_INT.
unsigned int uintVal; // VT_UINT.
char FAR * pcVal; // VT_BYREF|VT_I1.
unsigned short FAR * puiVal; // VT_BYREF|VT_UI2.
unsigned long FAR * pulVal; // VT_BYREF|VT_UI4.
int FAR * pintVal; // VT_BYREF|VT_INT.
unsigned int FAR * puintVal; //VT_BYREF|VT_UINT.
};
};
vt用来存储存储变量的类型,联合体用来存储对用类型的值

对_variant_t变量初始化调用的是_variant_t的构造函数,我们一般习惯于用一个int型的变量对数字类的变量进行初始化,这对_variant_t变量是不允许的,原因很简单,_variant_t的构造函数中没用用整型对其初始化的构造函数,可先将整型转化成long对其进行初始化,赋值操作与构造函数类似.

分享到:
评论

相关推荐

    _bstr_t和_variant_t

    _bstr_t和_variant_t,主要介绍_bstr_t和_variant_t两种数据类型的简单作用。

    餐厅管理信息系统课程设计

    m_pRecordset->Open("SELECT*FROMUserInfo",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText); } catch(_com_error e) { CString temp; temp....

    VC CString最全面的总结 常用数据类型使用转换详解等总结

    WINDOWS程序设计中最常用的一些消息: 2 1 窗口消息:WM_CREATE,WM_DESTROY,WM_CLOSE 2 2 键盘消息:WM_CHAR,WM_KEYDOWN,WM_KEYUP 2 ...六、VARIANT 、_variant_t 与 COleVariant 17 七、其它 18

    VC++ 数据类型学习笔记

    一个全面的关VC++数据类型的总结,VARIANT, _variant_t,COleVariant 转换成字符中及相互间转化 不同时间间转换

    VC中各种不同数据类型的相互转换2(补充)

    对VC中的各种不同数据类型进行转换(涉及数据类型:int,long,float,double,char username[],char temp[200], char *buf,CString,_variant_t,_bstr_t)

    DELPHI Variant变量的使用技巧

    delphi 为了完全支持OLE,32位Delphi 增加了Variant 数据类型,本节将从宏观角度来分析这种数据类型。实际上,Variant类型对Pascal语言有普遍而深入的影响,Delphi 控件库中与OLE 无关的地方也使用到这种类型。 ...

    VC数据类型详解,解说详细

    二. 常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CString及string,char *与其他数据类型的转换和操作 ●CString,string,char*的综合比较 ●数学类型与CString相互转化 ●CString与char*相互转换举例 ●...

    基础COM知识

    BSTR、VARIANT、COleVariant、_variant_t、CComBSTR、_bstr_t (2011-09-01 14:23:30) 转载▼ 标签: 杂谈 char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。Windows为了...

    Visual C++ 常用数据类型转换方法详解第1/2页

    说明:本文纯粹是总结一下有关类型转换的贴子, 本人并未对所有方法都做测试,...一、其它数据类型转换为字符串 短整型(int) itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制 itoa(i,temp,2); /

    Visual C++开发经验技巧宝典(第2章)

    第2章 数据类型 35 2.1 常用类型 36 0084 CString的多种初始化方式 36 0085 Windows字符串指针类型分析 36 0086 BSTR类型与CString类型的相互转换 36 0087 _bstr_与其他字符串类型的相互转换 37 0088 _...

    variant-generator:用于标记联合的C ++源代码生成器

    带标记的联合的同义词是区分联合,代数数据类型(参见Haskell)和variant,其中variant在C ++库中似乎很流行。 格奥尔格·塞托夫(Georg Sauthoff) 例子 输入规范( variant.inf ): union { std::string ...

    QTreeWidgetItem的setData(int column,int role,QVariant& data)等,

    Qt中QVariant是多种类型的联合,QVariant类中有个SetValue(T& value)方法,将自定义 T 类型的数据保存到QVariant对象中,可以理解为是自定义类型被封装成了QVariant的形式,这样,我们自定义的T类型的对象就能够通过...

    BCP详细参数.txt

    说明 Microsoft SQL Server 6.5 中的 bcp 实用工具不支持大容量复制到包含 sql_variant 或 bigint 数据类型的表。 data_file 大容量复制表或视图到磁盘(或者从磁盘复制)时所用数据文件的完整路径。当将数据大...

    网狐6.6 服务器源代码 & 共享组件 & 数据库 (5)

    typedef _variant_t CDBVarValue; //数据库数值 ////////////////////////////////////////////////////////////////////////// //导出定义 //导出定义 #ifndef KERNEL_ENGINE_CLASS #ifdef KERNEL_...

    网狐6.6 服务器源代码 & 共享组件 & 数据库 (3)

    typedef _variant_t CDBVarValue; //数据库数值 ////////////////////////////////////////////////////////////////////////// //导出定义 //导出定义 #ifndef KERNEL_ENGINE_CLASS #ifdef KERNEL_...

    网狐6.6 服务器源代码 & 共享组件 & 数据库 (6)

    typedef _variant_t CDBVarValue; //数据库数值 ////////////////////////////////////////////////////////////////////////// //导出定义 //导出定义 #ifndef KERNEL_ENGINE_CLASS #ifdef KERNEL_...

    网狐6.6 服务器源代码 & 共享组件 & 数据库(1)

    typedef _variant_t CDBVarValue; //数据库数值 ////////////////////////////////////////////////////////////////////////// //导出定义 //导出定义 #ifndef KERNEL_ENGINE_CLASS #ifdef KERNEL_...

    网狐6.6 服务器源代码 & 共享组件 & 数据库 (4)

    typedef _variant_t CDBVarValue; //数据库数值 ////////////////////////////////////////////////////////////////////////// //导出定义 //导出定义 #ifndef KERNEL_ENGINE_CLASS #ifdef KERNEL_...

    网狐6.6 服务器源代码 & 共享组件 & 数据库 (7)完毕

    typedef _variant_t CDBVarValue; //数据库数值 ////////////////////////////////////////////////////////////////////////// //导出定义 //导出定义 #ifndef KERNEL_ENGINE_CLASS #ifdef KERNEL_...

    SAP屠夫作品汇总

    标准成本Cost variant的Valuation Variant 001(Tcode:OKK4) . 390 作业计划价格和Routing检查(CA03). 390 作业计划价格检查(KP26) 391 成本核算单和成本组件结构 393 例1 Origin group的使用 402 例2 Costing sheet...

Global site tag (gtag.js) - Google Analytics