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

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

转载:http://www.cnblogs.com/GoodGoodWorkDayDayUp/archive/2010/11/15/1877655.html

VC6.0上编译通过,console程序,使用静态MFC库。也许有不对的地方,欢迎指正

#include <stdio.h>
#include <afx.h>
#include <comdef.h>
#include <atlbase.h>

void main()
{
    BSTR bstrText;
    _bstr_t _bstr_tText;
    CString cstrText;
    LPTSTR pText;
    CComBSTR ccomstrText;
    VARIANT variantText;
    _variant_t _variant_tText;

    //char*转成其他类型
    _bstr_tText = "系统设置";
    bstrText = _com_util::ConvertStringToBSTR("通道设置");
        SysFreeString(bstrText);    //必须释放
    cstrText = "用户管理";
    ccomstrText = "日志管理";
    variantText.vt = VT_BSTR;
    variantText.bstrVal = _com_util::ConvertStringToBSTR("jinan1861");
    _variant_tText = "报警管理";

    //BSTR转成其他类型
    bstrText = _com_util::ConvertStringToBSTR("通道设置");
    cstrText = bstrText;
    _bstr_tText = bstrText;
    ccomstrText = bstrText;
    variantText.vt = VT_BSTR;
    variantText.bstrVal = bstrText;
    _variant_tText = bstrText;
    pText = _com_util::ConvertBSTRToString(bstrText);
    SysFreeString(bstrText);
    delete(pText);                    //需要delete

    //_bstr_t转成其他类型
    _bstr_tText = "系统设置";
    cstrText = (LPCTSTR)_bstr_tText;
    bstrText = (BSTR)_bstr_tText;
    pText = (char*)_bstr_tText;
    ccomstrText = (BSTR)_bstr_tText;
    variantText.vt = VT_BSTR;
    variantText.bstrVal = (BSTR)_bstr_tText;
    _variant_tText = _bstr_tText;

    //Cstring转成其他类型
    cstrText = "日志管理";
    LPCTSTR pText1 = (LPCTSTR)cstrText;
    bstrText = _com_util::ConvertStringToBSTR( (LPCTSTR)cstrText );
    variantText.vt = VT_BSTR;
    variantText.bstrVal = bstrText;
    SysFreeString(bstrText);
    _bstr_tText = cstrText;
    ccomstrText = cstrText;
    _variant_tText = (LPCTSTR)cstrText;

    //ccomstrText转成其他类型
    ccomstrText = "用户管理";
    cstrText = ccomstrText;
    _bstr_tText = ccomstrText;
    bstrText = ccomstrText;
    pText1 = (LPCTSTR)cstrText;
    variantText.vt = VT_BSTR;
    variantText.bstrVal = (BSTR)ccomstrText;
    _variant_tText = (BSTR)ccomstrText;

    //VARIANT转成其他类型
    if (variantText.vt == VT_BSTR)
    {
        //variantText.bstrVal是BSTR类型,参考BSTR的转换方法
    }

    //_variant_t是VARIANT的封装类,
    //构造函数和操作符'='支持VARIANT,_bstr_t和LPTSTR
    //_variant_t转成其他类型
    _variant_tText = "抓图管理";
    _bstr_tText = (_bstr_t)_variant_tText;
    cstrText = (LPCTSTR)_bstr_tText;
    pText1 = (char*)_bstr_tText;
    bstrText = (_bstr_t)_variant_tText;
    _bstr_tText = _variant_tText;
    ccomstrText = (BSTR)_bstr_tText;
    variantText = _variant_tText;

    getchar();

}

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

相关推荐

最新首发——boss直聘爬虫

本文介绍了使用Python开发Boss直聘爬虫的核心思路和技术要点。通过模拟浏览器访问搜索页面获取Cookie,然后构建API请求获取职位数据。关键步骤包括:1)使用DrissionPage库初始化浏览器;2)模拟用户浏览行为获取必要参数;3)设置完整的请求头信息;4)通过POST请求获取JSON格式的职位数据。文章提供了详细的代码实现,包括浏览器模拟、API请求构建、数据处理等核心功能模块,并强调了最新版接口改为POST访问的特点。该爬虫可自动翻页采集数据并保存为Excel文件,适用于安全实习等职位信息的

2301_79735033的博客 3324

char, BSTR, _bstr_t, CComBSTR之间的互相转换

char, BSTR, _bstr_t, CComBSTR之间的互相转换char:    To BSTR:         _com_util::ConvertStringToBSTR        CString的AllocSystemString    To _bstr_t:         _bstr_t的构造函数    To CComBSTR:        CComBSTR的构造函数BSTR:    To char:        _com_util::ConvertBSTRToString   

小青年儿 3598

(53页PPT)新型智慧病房整体解决方案(附下载方式)

当前医疗场景存在三大核心矛盾:院内感染风险(如输液异常发现滞后)、信息孤岛现象(11类业务系统数据割裂)、管理效能不足(30%护理时间耗费在机械性工作)。实际案例显示,整体运营效率提升40%,患者满意度提高28个百分点,真正实现了"让技术有温度,让数据会说话"的价值理念。本文将从需求分析、技术架构、应用场景三个维度,深度剖析这份53页解决方案的创新价值与实践路径。床旁智能终端整合12项功能:包括体征自动采集(误差率<1%)、医嘱执行核对(100%条码校验)、智能床垫离床报警(响应时间3秒)等。

AI_data_cloud的博客 716

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

刚接触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;_bs

nana_tubi的专栏 3万+

ADRC自抗扰控制:工程抗扰“黑科技”,附C代码实战!

自抗扰控制(ADRC)是一种革新性的强鲁棒控制策略,通过主动估计和补偿系统扰动,无需精确数学模型即可实现优异控制性能。本文详细解析ADRC三大核心组件:跟踪微分器(TD)实现指令柔化,扩张状态观测器(ESO)实时估计总扰动,非线性状态反馈(NLSEF)完成动态补偿。针对二阶系统,文章提供完整的参数设计方法和C语言实现框架,包括关键函数fhan和fal的代码实现。ADRC将复杂对象"线性化"为积分器串联系统,显著提升抗扰能力,特别适用于电机控制、飞行器姿态等存在模型不确定性和强干扰的场景。

技术工作者 1737

飞书多维表格+影刀RPA:我如何用3个指令搞定每周的销售数据自动汇总(附完整配置截图)

本文详细介绍了如何利用飞书多维表格和影刀RPA实现销售数据的自动化汇总,通过三个核心指令(建立链接、列出记录、更新记录)简化繁琐的手工操作。文章包含完整的配置截图和实战指南,帮助用户快速部署自动化流程,提升工作效率。

weixin_29273849的博客 286

VC++6.0中Console程序台程序使用CString

1.添加#include "afx.h"   2.

BeanJoy的专栏 2211

AXI Memory Mapped To PCI Express IP 核设计实例

本文详细描述了AXI Memory Mapped To PCI Express(2.9) IP核的应用实例

u011565038的博客 2803

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

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

nihao4561277的专栏 1387

第三节:Vben Admin 最新 v5.0 (vben5) + Python Flask 快速入门 - 对接后端登录接口(上)

这里是Vben Admin V5版本实战体验,上一节我们前端已正常运行,但是没有实现登录。本节的重点是对接后端接口。上一节地址:第一节:Vben Admin 最新 v5.0初体验第二节:Vben Admin 登录逻辑梳理和对接后端准备后端我们采用Python的Flask项目,Flask-SQLAlchemy管理数据库模型,Flask-Migrate进行模型迁移。参考版本如下:Flask3.0.23.1.1到这里,登录接口完成,下一步要实现获取用户信息和权限的接口功能。

cuiwin的专栏 1864

软件测试面试题之易错题

(1)白盒测试:又称功能功能 测试、数据驱动测试和行为测试,是一种从用户观点出发的测试,被测程序为黑盒子, 通过测试来检测每个功能是否能够正常使用。(2)黑盒测试:又称结构测试和逻辑驱动 测试,是知道产品内部工作过程,通过测试来检测产品内部动作是否按照规格说明书 的规定去正常运行。(1)、测试需求分析;(2)动态白盒测试:需要对各个模块功能、模块间的接口、局部数据结构、主要执行路径、 错误处理等方面的测试。(2) 集成测试所测试的对象是模块间的接口,其目的是在找出在模块接口上面,包括整体体系结构上的问题;

m0_37449634的博客 679

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

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

helonSY欢迎您的到来! 639

一文看懂EMMC原理及工作过程

CMD:用于设备初始化和命令传输的双向通道, CMD信号有2种工作模式:1#:漏极开路--->用于初始化模式2#:推拉--->用于快速命令传输其中命令从eMMC主机控制器发送到eMMC设备,响应从设备发送到主机。DAT [7:0]:双向数据信号,模式包括:1(DAT0);默认情况下,通电或重置后,只有DAT0用于数据传输。DAT信号在推挽模式下工作,eMMC设备包括数据线DAT1-DAT7的内部上拉。进入4位模式后,设备立即断开线路DAT1、DAT2和DAT3的内部上拉;

Airer_00的博客 2036

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.GetLength()+1];  wcscpy(pwStr,T2W((LPCTSTR)str)); // 方法二    CString str=_T("TestStr");  USES_CONVERSION;  L

shuaiqidiudiu的专栏 2854

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

对论坛中有关数据类型转换的总结

标题   对论坛中有关数据类型转换的总结     visiond [原作]  关键字   类型 转换 VC 总结 类型转换 出处      对论坛中有关数据类型转换的整理整理:Vision Deng--------------------------------------------------------------------------------说明:本文纯粹是总结一下有关类型转换的

回家念经(kv300)--编程之禅 4355

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

VC常用数据类型使用转换详解读者层次:初学刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。我们先定义一些常见类型变量借以说明int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;CStr

小发猫 3805

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

各种字符串之间的转换

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

yangxkl的专栏 815

(转)BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t )

http://blog.youkuaiyun.com/zhangqc1985/article/details/5113103 Visual C++.NET涉及到ATL/ATL Server、MFC和托管C++等多种编程方式,不仅功能强大而且应用广泛。在编程中,我们常常会遇到ANSI、Unicode以及BSTR不同编码类 型的字符串转换操作。本文先介绍基本字符串类型,然后说明相关的类,如CComBSTR、_b...

weixin_30815469的博客 68

VC++中遇到的各种数据类型BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR...

BSTR、LPSTR、LPWSTR、CString、VARIANT、COleVariant 、_variant_t、CComBSTR、_bstr_t Visual C++.NET涉及到ATL/ATL Server、MFC和托管C++等多种编程方式,不仅功能强大而且应用广泛。在编程中,我们常常会遇到ANSI、Unicode以及BSTR不同编码类 型的字符串转换操作。本文先介绍基本字符串类型...

weixin_30668887的博客 241

Visual C++.NET中的字符串转换方法

Visual C++.NET中的字符串转换方法   Visual C++.net涉及到ATL/ATLServer、MFC和托管C++等多种编程方式,不仅功能强大而且应用广泛。在编程中,我们常常会遇到ANSI、Unicode以及BSTR不同编码类型的字符串转换操作。本文先介绍基本

特权份子的专栏 513

C++常用数据类型及其操作详解

一.              VC常用数据类型列表二.              常用数据类型转化2.1数学类型变量与字符串相互转换2.2 CString及string,char *与其他数据类型的转换和操作●CString,string,char*的综合比较●数学类型与CString相互转化●CString与char*相互转换举例●CString 与 BSTR 型转

Johnny的专栏 2644
上一篇: VC轻松解析XML文件 - CMarkup类的使用方法
下一篇: MFC注册窗口类以及FindWindow按窗口类名查询
erick08
博客等级 码龄18年 24粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值