VARIANT 、_variant_t 与 COleVariant [2004年4月7日 17:38]

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
From:http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=188857 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. _variant_t是VARIANT的封装类,其赋值可以使用强制类型转换,其构造函数会自动处理这些数据类型。 使用时需加上#include <comdef.h> 例如: 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_t 是什么数据类型?? 这个问题的答案比较广泛:     我所知道常用的     1。在执行的SQL语句一般都是_bstr_t     2.Connection   中的RecordsAffected   为VARIANT     3.使用get_Value()获得的记录的值为   VAARIANT         等等。。。     _bstr_t   中记录了字符串的长度,     _variant_t   记录有数 阅读详情

相关推荐

_variant_t 编译不通过的解决方法

_variant_t 编译不通过的解决方法:如图中的字符设置方法;

ccsupper的博客 551

_variant_t类型的使用

Normal 0 7.8 pt 0 2 false false false EN-US ZH-CN X-NONE

nathannemo的专栏 1691

认识和使用COleVariant

有时候会用到COleVariant类型数据.比如在CDaoRecordset::SetFieldValue()和GetFieldValue()中. 

我的一些记录 2143

COleVariant

使用COleVariant 传递基本数据类型 COleVariant  vTrue(TRUE,VT_BOOL);  COleVariant  vFalse(FALSE,VT_BOOL); 错误用法,导致构造函数版本不明确. COleVariant::COleVariant(long,VARTYPE) COleVariant::COleVariant(short,VARTY

bsnry的专栏 2608

对论坛中有关数据类型转换的总结(摘自CSDN)

int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]=”杨鹏伟”;char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2; 一、其它数据类型转换为字符串 短整型(int)itoa(i,temp,10);///将i转换为...

学习中.... 215

MFC之COleVariant

COleVariant 本质上是一个枚举,用同一种类型来表达不同的子类型。如同boost中的variant。 例子 COleVariant var(3.6f); float v = var.fltVal; CString str("testCOleVariant"); COleVariant var2(str); CString cpStr(var2.bstrVal); 例子 CStrin

dreamcs的专栏 2万+

duilib\utils\utils.h(251) : error C2504:VARIANT: 未定义基类

创建win32应用程序的工程文件,删除不需要的代码,只留下空的winmain函数。 编译时提示如下错误: duilib\utils\utils.h(251) : error C2504:VARIANT: 未定义基类 duilib\utils\utils.h(269) : error C2061: 语法错误 : 标识符“LPOLESTR” duilib\utils\util

SP_daiyq的专栏 4042

_variant_t的使用

我们先看看COM所支持的一些类型的基本类: (微软提供,在comdef.h中定义) 在COM中使用的标准类Class如下所示: _bstr_t:对BSTR类型进行打包,并提供有用的操作和方法; _com_error:定义抛出的error对象; _com_ptr_t:封装COM接口指针 _variant_t:对VARIANT类型进行打包,并提供有用的操作和方法; 一、_var...

diaomo9737的博客 1672

VC数据类型转换大全 (转)

VC数据类型转换大全 int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;CString str;_variant_t v1;_bstr_t v2;一、其它数据类型转换为字符串短整型(int)itoa(i,temp,10);///将i转换为

Chendy的专栏 2788

error C3861 CComVariant 找不到标识符

报错: 错误 1 error C3861: “CComVariant:  找不到标识符 d:\code_webgis\iwebgiscommonservice\code\exportdatatopgdb\exportdatatopgdb\stdafx.cpp 77 1 ExportDataToPGDB 但选中一个CComVariant,按F12查看定义,却能查到多个: 以为漏掉

a_dev的专栏 770

_variant_t ,_bstr_t CString 类有什么区别

  栏目导航:  首    页  |  其它技术  |  VC/C++/C基础 _variant_t ,_bstr_t CString 类有什么区别原作者:不详    源出处:不详    发布者:施昌权    发布类型:转载   

buter_2008的专栏 2924
上一篇: 我该写些什么呢[2004年3月31日 23:18]
下一篇: Oracle 学习笔记[2004年4月8日 9:44]
hahu
博客等级 码龄24年 14粉丝 38原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值