_variant_t转化成char* ch;
ch = (char*)(_bstr_t)vt;

=================================
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;

转载于:https://www.cnblogs.com/aoyihuashao/archive/2009/12/14/1623862.html

VARIANT 、_variant_t 与 COleVariant相关推荐

  1. tagVARIANT、VARIANT、_variant_t和COleVariant

    tagVARIANT是一个结构体struct: C++ Code: tagVARIANT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 ...

  2. Cstring转LPWSTR/LPCWSTR..BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t .

    //方法一  CString str=_T("TestStr");  USES_CONVERSION;  LPWSTR pwStr=new wchar_t[str.GetLengt ...

  3. BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Visu ...

  4. BSTR LPSTR LPWSTR CString VARIANT COleVariant variant t CC

    Visual C++.NET涉及到ATL/ATL Server.MFC和托管C++等多种编程方式,不仅功能强大而且应用广泛.在编程中,我们常常会遇到ANSI.Unicode以及BSTR不同编码类 型的 ...

  5. VARIANT 数据类型

    VARIANT 数据类型在文件OAIDL.IDL中定义如下: [vc中数据类型,对应类为_variant_t] struct tagVARIANT {     union {         stru ...

  6. MFC之COleVariant类

    COleVariant 本质上是一个枚举,用同一种类型来表达不同的子类型.如同boost中的variant. COleVariant类是对VARIANT结构的封装. VARIANT 结构包含两部分.其 ...

  7. MFC之COleVariant

    COleVariant 本质上是一个枚举,用同一种类型来表达不同的子类型.如同boost中的variant. 例子 COleVariant var(3.6f); float v = var.fltVa ...

  8. 【温故而知新】C和C++篇外篇:COleVariant类型

    今天在做一个windows平台的小工具顺便熟悉一下windows开发的一些基础知识,在这个过程中,发现了MFC使用了一种数据类型叫做COleVariant类型,感觉比较新鲜,赶忙到网上查一下,做一下记 ...

  9. VC 中类型转换(转)

    CString->TCHAR*的转化可以用函数GetBuff() 函数原型为:LPTSTR GetBuffer( int nMinBufLength ); CString str("C ...

最新文章

  1. vue router name命名规范_超完整的Vue入门指导
  2. .NET英文技术文章导读(2017-02-09)
  3. 他2年拿下博士学位,发表11篇顶会论文!浙大校友李旻辰斩获SIGGRAPH最佳博士论文奖...
  4. ccna____总结
  5. [COGS 622] [NOIP2011] 玛雅游戏 模拟
  6. java程序_Java程序员必备----Java命令大全
  7. 解决Javascript疲劳的方法-以及其他所有疲劳
  8. db2时间格式化为时间到时分秒_快捷指令为 iPhone 手机照片添加时间水印
  9. CS5211,CS5212,CS5256,CS5811,CS5288资料
  10. Hadoop学习11:NameNode和Secondary NameNode的工作机制
  11. 计算机对操作系统函数的调用失败,解决win7提示“远程过程调用失败且未执行”的方案...
  12. uploadify java 下载_java uploadify 实现文件上传
  13. 科技百咖 | 志翔科技:一个“清华中老年创业天团”的故事
  14. 3D Slicer简单三维重建
  15. 机器学习十大算法之三K-means
  16. 中国-8月两轮车市场加速增长(+7%)
  17. LaTeX: Missing } or { inserted. ^^I\For
  18. 谷歌地图模型自动下载
  19. POJ1005 I Think I Need a Houseboat
  20. 前端架构之路:数据驱动型组件-HeyUI,一个新型的VUE组件库

热门文章

  1. 11、借助POI实现Java生成并打印excel报表(2)
  2. win10休眠设置_原来win10这样设置,电脑就能释放30G,比win7运行还顺畅
  3. 2021爱分析·采购数字化厂商全景报告(附下载)
  4. 关于鲁班H5安装报错的问题
  5. C语言实现三子棋小游戏---超详细讲解
  6. 东芝TLP2748代替品 MPCS-60L 10Mbit/s高速带逻辑门输出的直流输入的光电耦合器
  7. 聊一聊在线视频剪辑工具
  8. 《从零开始编写一个直播服务器》 C++ 实现一个最简单的RTSP流媒体服务器
  9. 吹牛的资本之Hibernate框架,五分钟搞定Hibernate...
  10. Linux系统如何安装oki打印机,oki打印机驱动安装图解