COleVariant和VARIANT转换为CString类型

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

COleVariant是数据库常用到的数据类型。它可以是字串,整型值,日期等。知道怎样将它转换为CString很有用处。

        设有CString A; COleVariant B; 来看看怎样将COleVariant转换为CString:

        switch(B.vt){

            case VT_BSTR:  A=B.bstrVal; break;//COleVariant是一个字串

            case VT_I2:  A.Format(_T("%hd"),V_I2(&B));break;//是短整型

            case VT_I4:  A.Format(_T("%d"),V_I4(&B));break;//是长整型

            case VT_R4:  A.Format(_T("%e"),(double)V_R4(&B));break;//是浮点数

            case VT_R8:  A.Format(_T("%e"),V_R8(&B));break;//是浮点数

            case VT_CY:  A=COleCurrency(B).Format();break;//是货币值

            case VT_DATE: A=COleDateTime(B).Format("%Y-%m-%d");break;//是日期

            case VT_BOOL: A=V_BOOL(&B)?"True":"False";break;//是布尔值

       }

VARIANT转CString类型

vResult = range.GetValue();    

CString str;     

 if(vResult.vt == VT_BSTR)        //字符串        

str = vResult.bstrVal;     

else if (vResult.vt == VT_R8)      //8字节的数字        

 str.Format("%f", vResult.dblVal);     

else if(vResult.vt == VT_DATE)     //时间格式    

 {          SYSTEMTIME st;        

            VariantTimeToSystemTime(vResult.date, &st);   

  }     

else if(vResult.vt == VT_EMPTY)    //单元格空的        

str = ""; 

转载自http://www.scistar.com/dis2/view.asp?enum=549

Cstring转LPWSTR而引发的一场血案      说是血案,严重了,不过此问题确实让我纠结了很久,现特把解决此问题过程中,个人感觉搜索到的有价值的资料贴在这儿,一来方便自己日后查找,二来可以将有价值的资料得以传播。。。。。。最终解决方法:CString str=_T("TestStr");  USES_CONVERSION;  LPWSTR pwStr=new wchar_t[str.GetLength()+1];  wcs 阅读详情

相关推荐

BSTR、LPSTR、LPWSTR、CStringVARIANTCOleVariant 、_variant_t、CComBSTR、_bstr_t

Visual C++.NET涉及到ATL/ATL Server、MFC托管C++等多种编程方式,不仅功能强大而且应用广泛。在编程中,我们常常会遇到ANSI、Unicode以及BSTR不同编码类 型的字符串转换操作。本文先介绍基本字符串类型,然后说明相关的类,如CComBSTR、_bstr_t、CStringT等,最后讨论它们的转换方法, 其中还包括使用最新ATL7.0的转换宏,如CA2CT、

pirate97的专栏 840

COleVariant与常用基本数据类型之间的转换

http://hi.baidu.com/ton666/item/0f52fd430783b9e01381dac5 http://blog.csdn.net/limitedlove/article/details/1648315 VARIANT 结构包含两部分。其一是 VARTYPE 型的成员变量vt;其二是个联合类型,这个联合包含了VC常用的几乎所有类型。因为联合用的是相同的存储空间,因此对联

bytxl的专栏 3414

VARIANTCOleVariant _variant_t

 在OLE、ActiveXCOM中,VARIANT数据类型提供了一种非常有效的机制,由于它既包含了数据本身,也包含了数据的类型,因而它可以实现各种不同的自动化数据的传输。下面让我们来看看OAIDL.H文件中VARIANT定义的一个简化版: struct tagVARIANT {  VARTYPE vt;  union {   short iVal; // VT_I2.   lon

u014023993的专栏 889

VC字符串转换(附数据类型转换

<br />一、BSTR、LPSTRLPWSTR <br />   在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTRLPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode多字节字符集(MBCS)的支持。<br />  那么什么是BSTR、LPSTR以及LPWSTR呢?<br />  BSTR(Basic STRing,Basic字符串)是一个OLECHAR*类型的Unicode字符串

smartjeck的专栏 422

VC几种数据类型详解

一、BSTR、LPSTRLPWSTR   在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTRLPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode多字节字符集(MBCS)的支持。   那么什么是BSTR、LPSTR以及LPWSTR呢?   BSTR(Basic ST

冷秋魂的专栏 1387

VC之字符串转换_BSTR/LPSTR/LPWSTR/Char

字符串转换_BSTR/LPSTR/LPWSTR/Char 一、BSTR、LPSTRLPWSTR在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTRLPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode多字节字符集(MBCS)的支持。  那么什么是BSTR、LPSTR以及LPWS

华丽de魔术师 1965

VC++ vs vs2005 char cstring int 字符串 转换 (1)

<br />一、BSTR、LPSTRLPWSTR <br /><br />  在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTRLPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode多字节字符集(MBCS)的支持。 <br /><br />  那么什么是BSTR、LPSTR以及LPWSTR呢? <br /><br />  BSTR(Basic STRing,Basic字符串)是一个OL

ihustmse的专栏 2222

类型转换

我们先定义一些常见类型变量借以说明: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,tem

ljz888666555的专栏 552

VC常用数据类型使用转换详解

//////////////////////////////////CString -> char*           //////////////////////////////////#include "atlbase.h"CString strTmp;char* cpTmp;USES_CONVERSIONcpTmp=T2A(strTmp);///////////////////////

zhouqh1982的专栏 884

一、BSTR、LPSTRLPWSTR 转换

一、BSTR、LPSTRLPWSTR在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTRLPWSTR等。之所以出现类似上述的这些数据类 型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode多字节字符集(MBCS)的支持。  那么什么是BSTR、LPSTR以及LPWSTR呢?  BSTR(Basic STRing,Basi

machh的专栏 1951
上一篇: CTreeCtrl 自绘
下一篇: VC操作Excel-Automation版
HiRuyue
博客等级 码龄14年 47粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值