问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在线求助!vc中关于variant类型的问题~~

发布网友 发布时间:2022-05-16 05:18

我来回答

1个回答

热心网友 时间:2023-10-12 06:53

VARIANT 、_variant_t 与 COleVariant

VARIANT的结构可以参考头文件VC98\Include\OAIDL.H中关于结构体tagVARIANT的定义。
对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子:
VARIANT va;
int a=2001;
va.vt=VT_I4;///指明整型数据
va.lVal=a; ///赋值

对于不马上赋值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR* pvarg);进行初始化,其本质是将vt设置为VT_EMPTY,下表我们列举vt与常用数据的对应关系:

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.

参考资料:http://www.vcshare.net/VC/vc_data/vc_data1.htm

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... c#怎么引用variant变体对象 java jacob 导出 word : int colCount = Dispatch.get(cols, "Count").changeType( Variant.VariantInt) 怎么将_variant_t型转化为int型 c++ VBA中如何将INT型字符改为Variant VARIANT的int类型赋值对吗? VARIANT这个类型怎么转int型 童心向党书香绵竹作文 学校为什么让购买童心向党快乐读书吧书本 童心向党,喜迎二十大读什么书 听说豌豆公主上的新版安耐晒性价比还阔以? 请问这两种安耐晒的区别是什么? 安耐晒16版17新版区别 安耐晒粉色新版什么时候出的 马年的宝宝取什么名字好,姓陶 给宝宝起个名字 姓陶 最好三个字的 男女都要 预产期是八月二十二号 taylor swift QQ音乐里面的背景图片 2012龙宝宝取名字姓陶 北京三只小熊摄影有限公司怎么样? 三只小熊照相馆价位 公司以公司账户没钱拖欠工资十一个月,劳动仲裁调节也是拿不到钱,到*强制执行,还是拿不到钱,怎么办 在VC中,怎样把一个int转换为_variant_t类型 qlist怎么转换成 int 求高手帮忙解释VARIANT的每个vt值所对应的数据类型 _variant_t的功能 豆芽肉丝的做法,豆芽肉丝怎么做好吃,豆芽肉丝 肉烧豆芽的家常做法 VC++中VARIANT的指针使用 辽宁高速通可以两个手机上吗? 被子植物的生命周期包括______的萌发、______的生长发育、______、结果、衰老和死亡 建筑给排水与采暖分项工程施工技术交底具体有那些内容那些工序要做技术交底 被子植物的一生要经历______、植株的生长、发育、______、衰老、死亡的过程 党参为什么会甜带苦味? 建筑水电 消防 暖通 施工规范与图集 被子植物的一生包括___、___、___。 水电改造验收及安装要注意什么 怎么判断党参是陈货还是新货? 水电安装和暖通工程不一样吗? 党参煮汤会有酸味吗 做一份新的总施工组织设计,需要注意哪些东西?有涉及到水电暖通这一块内容么?求经验之谈 为什么有些党参的味道很苦有一些是没什么味道