收藏 分销(赏)

字符串类型转换总结.doc

上传人:pc****0 文档编号:7832406 上传时间:2025-01-19 格式:DOC 页数:2 大小:37KB 下载积分:10 金币
下载 相关 举报
字符串类型转换总结.doc_第1页
第1页 / 共2页
字符串类型转换总结.doc_第2页
第2页 / 共2页
本文档共2页,全文阅读请下载到手机保存,查看更方便
资源描述
字符串类型转换总结 这里总结了BSTR, _bstr_t, CComBSTR, CString四种字符串类型之间的转换。其中BSTR为基本数据类型,另三个为字符串类。 首先声明四个类型的变量: BSTR strBigBSTR = ::SysAllocString( _T( "BSTR" )); _bstr_t strSmallBSTR( _T( “_bstr_t” )) ; CComBSTR strCComBSTR( _T( “CComBSTR” )) CString strCString( _T( “CString” )); CComBSTR strTempCComBSTR( _T( “TempCComBSTR” )); 1. BSTR to Other Type BSTR转换为其他类型非常方便,直接使用类的构造函数即可 // BSTR to _bstr_t strSmallBSTR = _bstr_t( strBigBSTR ); // BSTR to CComBSTR strCComBSTR = CComBSTR( strBigBSTR ); // BSTR to CString strCString = CString( strBigBSTR ); 2. _bstr_t to Other Type 基本思想是先把_bstr_t转化为TCHAR*, 再转化为其他类型。 // _bstr_t to BSTR strTempCComBSTR = CComBSTR( static_cast<TCHAR*>( strSmallBSTR )); strBigBSTR = strTempCComBSTR.m_str; // _bstr_t to CComBSTR strCComBSTR = CComBSTR( static_cast<TCHAR*>( strSmallBSTR )); // _bstr_t to CString strCString = CString( static_cast<TCHAR*>( strSmallBSTR )); _bstr_t类重载了操作符char*和wchar_t*(TCHAR*的两种形式),所以这里并不是使用强制转换,而是调用了_bstr_t的函数。 3. CComBSTR to Other Type 基本思想是使用CComBSTR的公有成员变量m_str进行转换。 // CComBSTR to BSTR strBigBSTR = strCComBSTR.m_str; // CComBSTR to _bstr_t strSmallBSTR = _bstr_t( strCComBSTR.m_str ); // CComBSTR to CString strCString = CString( strCComBSTR.m_str ); 4. CString to Other Type 基本思想是先把CString转化为LPCTSTR, 再转化为其他类型。 // CString to BSTR strTempCComBSTR = CComBSTR( static_cast<LPCTSTR>( strCString )); strBigBSTR = strTempCComBSTR.m_str; // CString to _bstr_t strSmallBSTR = _bstr_t( static_cast<LPCTSTR>( strCString )); // CString to CComBSTR strCComBSTR = CComBSTR( static_cast<LPCTSTR>( strCString )); CString类重载了操作符LPCTSTR,所以这里并不是使用强制转换,而是调用了CString的函数。 5. 注意事项: 其他类型转化为BSTR类型时都使用的CComBSTR作为中转,因为这样不需要自己释放内存。但是要注意的是,转换后BSTR指向的是CComBSTR的内存,所以一旦CComBSTR被销毁了,BSTR也就失效了,这样会导致不可预知的错误。所以一定要保证CComBSTR大于或等于BSTR的周期。 下面用法是错误的: strBigBSTR = CComBSTR(( LPCTSTR )strCString ).m_str; 因为CComBSTR在此条语句结束后就被析构了。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服