VARIANT与CString相互转换

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

VARIANT 类型经常用来给 COM 对象传递参数,或者接收从 COM 对象返回的值。你也能自己编写返回 VARIANT 类型的方法,函数返回什么类型 依赖可能(并且常常)方法的输入参数(比如,在自动化操作中,依赖与你调用哪个方法。IDispatch::Invoke 可能返回(通过其一个参数)一个 包含有BYTE、WORD、float、double、date、BSTR 等等 VARIANT 类型的结果,(详见 MSDN 上的 VARIANT 结构的定义)。在下面的例子中,假设 类型是一个BSTR的变体,也就是说在串中的值是通过 bsrtVal 来引用,其优点是在 ANSI 应用中,有一个构造函数会把 LPCWCHAR 引用的值转换为一个 CString(见 BSTR-to-CString 部分)。在 Unicode 模式中,将成为标准的 CString 构造函数,参见对缺省::WideCharToMultiByte 转换的告诫,以及你觉得是否可以接受(大多数情况下,你会满意的)。VARIANT vaData;

vaData = m_com.YourMethodHere();

ASSERT(vaData.vt == VT_BSTR);

CString strData(vaData.bstrVal);

你还可以根据 vt 域的不同来建立更通用的转换例程。为此你可能会考虑:

CString VariantToString(VARIANT * va)

{

    CString s;

    switch(va->vt)

      { /* vt */

       case VT_BSTR:

          return CString(vaData->bstrVal);

       case VT_BSTR | VT_BYREF:

          return CString(*vaData->pbstrVal);

       case VT_I4:

          s.Format(_T("%d"), va->lVal);

          return s;

       case VT_I4 | VT_BYREF:

          s.Format(_T("%d"), *va->plVal);

       case VT_R8:

          s.Format(_T("%f"), va->dblVal);

          return s;

       ... 剩下的类型转换由读者自己完成

       default:

          ASSERT(FALSE); // unknown VARIANT type (this ASSERT is optional)

          return CString("");

      } /* vt */

}

 
vc Variant类型转换CString函数 一个Variant类型转换CString的函数,调试过,可以用。 立即下载

相关推荐

CString 转换VARIANT类型

CString strVar VARIANT varValue; varValue.vt=VT_BSTR; varValue.bstrVal=(_bstr_t)Var; m_ctlSpread.SetText( varValue);

xuqiang918的专栏 4464

_variant_t类型和CString类型、CTime类型的相互转换

在做MFC对数据库进行操作时,涉及到

u013240179的专栏 5959

CString 转换VARIANT

byte databyte[]={0xc4,0xe3,0xba,0xc3,0xd6,0xd0,0xb9,0xfa,0x00}; CString str; str=(CString) databyte;

mowwwcom的专栏 1218

_variant_t ,_bstr_t CString 类有什么区别

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

buter_2008的专栏 2924

()VARIANTCString相互转换

VARIANT 类型经常用来给 COM 对象传递参数,或者接收从 COM 对象返回的值。你也能自己编写返回 VARIANT 类型的方法,函数返回什么类型 依赖可能(并且常常)方法的输入参数(比如,在自动化操作中,依赖你调用哪个方法。IDispatch::Invoke 可能返回(通过其一个参数)一个 包含有BYTE、WORD、float、double、date、BSTR 等等 VARIANT 类型

gxj1680的专栏 1065

CString,string,char,LPSTR,LPCSTR,LPWSTR,LPCWSTR,_bstr_t ,_variant_t 相互转换

(1)string和char相互化 string strzz = "1234"; const char* zz=strzz.c_str(); string strvv = zz;//char直接赋值给string就可以了 (2)CString和string相互化(本质就是宽字符和窄字符的化) string strzz = "1234"; CString nn(strzz.c_str());//stringCString,利用构...

WuYWenXJiaY的博客 322

c++调用js 获取值, VARIANTCString相互转换

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33894992的博客 317

CString、_bstr_t、_variant_t等类型的相互转换

本文载自http://blog.csdn.net/yyyzlf/article/details/5209934 刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。 我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119;

zkpingguo的博客 1737

CString TCHAR BSTR BYTE WORD DWORD COLORREF VARIANT等数据类型相互转换

1.基本数据类型CString类型 int a=100; float b=1.234; CString str; str.Format(_T("a=%d,b=%f"),a,b); 2.TCHAR*类型转换CString类型 TCHAR sz[] = _T("Hello World!"); CSting str = sz;//直接赋值也可以用Format函数 //CString

mengzhishen的专栏 1437

_variant_t ,_bstr_t CString 类有什么区别 以及相互转换

_variant_t ,_bstr_t CString 类有什么区别                                           int i = 100;   long l = 2001;   float f=300.2;   double d=12345.119;   char username[]="程佩君";

jiangjunfeng800x的专栏 5085

wchar_t,char,string,CString,BSTR,CComBSTR,_bstr_t,VARIANT 、_variant_t COleVariant相互转换

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。随着计算机工作能力的增强,Unicode也在面世以来的十多年里得到普及。在非 Unicode 环境下,由于不同国家和地区采用的字符集不一致,很可能出现无法正常显示所有字符的情况。微软公司

nihao4561277的专栏 1386

_variant_tCString

1. VARIANTCString, 也可以将参数类型改为_variant_t。CString VariantToCString( VARIANT var ) {     CString            strValue;     _variant_t        var_t;     _bstr_t            bst_t;     time_t            cur_time;     CTime            time_value;     COleC

skywalker_leo的专栏 3328

CString其它类型之间的相互转换

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);///

smalle的专栏 879

char,string,CString相互转换

(2011-04-17 19:35:17) 原文地址:http://blog.sina.com.cn/s/blog_7c1a82970100qmwk.html 本人并未对以下所有方法进行测试,仅仅是为了给大家一个参考。      Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理

surelion的专栏 1052

_variant_t其他数据类型的转换

自:http://kuaixingdong.blog.hexun.com/29627840_d.html 我们先看看COM所支持的一些类型的基本类: (微软提供,在comdef.h中定义) 在COM中使用的标准类Class如下所示: _bstr_t:对BSTR类型进行打包,并提供有用的操作和方法; _com_error:定义抛出的error对象; _com_ptr_t:封装COM接口

我的地盘 3150

CString 用法总结(字符串转换

CString 操作指南原著:Joseph M. Newcomer翻译:littleloach原文出处:codeproject:CString Management通过阅读本文你可以学习如何有效地使用 CString。  CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是

lbqBraveheart的专栏 1万+

关于CString

通过阅读本文你可以学习如何有效地使用 CString。  CString 是一种很有用的数据类型。它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多。不管怎样,使用CString有很多特殊的技巧,特别是对于纯C背景下走出来的程序员来说有点难以学习。这篇文章就来讨论这些技巧。  使用CString可以让你对字符串的操作更加直截了当。这篇文章不是CString的完全手册,

yyq_leaf的专栏 510

BSTR,_bstr_t,CComBSTR,VARIANT,_variant_t,CString转换

VC6.0上编译通过,console程序,使用静态MFC库。也许有不对的地方,欢迎指正 #include <stdio.h>#include <afx.h> #include <comdef.h>#include <atlbase.h> void main(){ BSTR bstrText; _bstr_t _bstr_tText;...

weixin_30851409的博客 188
上一篇: CString 互转 BSTR 型
下一篇: BSTR、_bstr_t与CComBSTR相互转换
primer_programer
博客等级 码龄20年 283粉丝 180原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值