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与常用数据的对应关系:

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;

java variant_VARIANT类型的用法相关推荐

  1. java的枚举类型是什么_什么是枚举(java枚举类型enum用法)

    最佳回答 枚举 1.枚举 (enumeration) 值类型的一种特殊形式,它从 System.Enum 继承,并为基础基元类型的值提供备用名称.枚举类型有名称.基础类型和一组字段.基础类型. &qu ...

  2. java枚举类型enum用法_java枚举类型enum用法和原理介绍【传智播客】

    Enum枚举类型 Enum的全写是Enumeration,这个词的翻译是列举.逐条陈述.细目.在程序语言中,枚举类型是一种特殊的数据类型(常用的数据类型比如字符串.整型),这种数据类型的变量值限定在固 ...

  3. Java枚举类型的用法

    JDK1.5引入了新的类型--枚举.在 Java 中它虽然算个"小"功能,却给我的开发带来了"大"方便. 1.用法一:常量 在JDK1.5 之前,我们定义常量都 ...

  4. java继承类型的用法_详解Java中使用externds关键字继承类的用法

    理解继承是理解面向对象程序设计的关键.在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类).在Java中不允许多继承. (1)继承 cla ...

  5. java 枚举类型enum用法_别再说Python没有枚举类型了,好好看看

    枚举 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. Python 的原生类型(Built-in types)里并没有专门的枚举类型,但是我们 ...

  6. java枚举类型enum用法_深入理解java枚举类型enum用法

    enum 的全称为 enumeraTIon, 是 JDK 1.5 中引入的新特性,存放在 java.lang 包中. 下面是我在使用 enum 过程中的一些经验和总结. 原始的接口定义常量 publi ...

  7. java枚举类型enum用法_Java枚举类型——Enum的简单用法

    枚举类型是Java1.5的新特性,是指由一组固定的常量组成合法的类型.Java中由关键字enum来定义一个枚举类型.我们可以使用枚举来取代用public final static修饰的一批相关数据.如 ...

  8. Java - 枚举类型enum用法

    目录 一.枚举的理解(概念) 二.早期实现方式 三.枚举类型的定义 四. 枚举类的要求和特点 五. 枚举类型常用方法 一.枚举的理解(概念)

  9. java枚举类型enum用法和写法

    java枚举类型enum用法,enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 Java.lang 包中,在上面的这种情况下,enum就能派上用场了.枚举类型的用 ...

最新文章

  1. thinkphp mysql函数_php封装的数据库函数与用法示例【参考thinkPHP】
  2. 在 Android Studio 2.2 中愉快地使用 C/C++
  3. fft ocean注解
  4. acrgis api for javaScript中的FeatureLayer查询
  5. 重构随笔——重构的原则
  6. 使用Comparable、Comparator接口实现对对象数组、List集合自定义排序
  7. java 数组覆盖_JavaSE——数组集合
  8. java 注解 jpa_详解Spring Data JPA使用@Query注解(Using @Query)
  9. php 容器对象,Laravel 6.2 中添加了可调用容器对象的方法
  10. Waymo也商业化了!“早期乘客”项目开始测试收费,凤凰城人民掏了腰包
  11. (转)内存整理的原理 整理自CSDN
  12. android 木马行为监控,基于行为分析的Android手机木马检测技术研究
  13. hdu 3987 - 最小割最少割边
  14. LinkedIn高级分析师王益:大数据时代的理想主义和现实主义(图灵访谈)
  15. 学习编程前需要知道什么?
  16. Vue基础—模版语法指令精细版
  17. 计算机网络基础课内实验报告答案,计算机网络基础课内实验报告-20210418131414.docx-原创力文档...
  18. ZOJ 3380 Patchouli's Spell Cards 概率DP
  19. 详细了解java中的null_深入理解java中的null“类型”
  20. Python为什么这么火,它能做什么?——Python编程语言应用综述

热门文章

  1. 【网络学习笔记】- 什么是IP地址?
  2. HTML小说目录跳转
  3. POI 导出excel ,xlsx 公式多个下拉框 XSSF
  4. 臉書、魔獸傳後代 線上保險箱搞定
  5. 实现生产者-消费者模式的五种方式
  6. java高级技术交流群
  7. 全网最全的openstack部署过程(小白都可以搭建起来的文档)
  8. vue项目实现国际化-vue-i18n
  9. 3种SAT数学解题方法介绍
  10. 预测分析:R语言实现2.3 多元线性回归