为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

字符串类型转换总结

2017-12-07 3页 doc 15KB 16阅读

用户头像

is_597436

暂无简介

举报
字符串类型转换总结字符串类型转换总结 这里总结了BSTR, _bstr_t, CComBSTR, CString四种字符串类型之间的转换。 其中BSTR为基本数据类型,另三个为字符串类。 首先声明四个类型的变量: BSTR strBigBSTR = ::SysAllocString( _T( "BSTR" )); _bstr_t strSmallBSTR( _T( “_bstr_t” )) ; CComBSTR strCComBSTR( _T( “CComBSTR” )) CString strCString( _T( “CStri...
字符串类型转换总结
字符串类型转换总结 这里总结了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( strSmallBSTR )); strBigBSTR = strTempCComBSTR.m_str; // _bstr_t to CComBSTR strCComBSTR = CComBSTR( static_cast( strSmallBSTR )); // _bstr_t to CString strCString = CString( static_cast( 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( strCString )); strBigBSTR = strTempCComBSTR.m_str; // CString to _bstr_t strSmallBSTR = _bstr_t( static_cast( strCString )); // CString to CComBSTR strCComBSTR = CComBSTR( static_cast( strCString )); CString类重载了操作符LPCTSTR,所以这里并不是使用强制转换,而是调 用了CString的函数。 5( 注意事项: 其他类型转化为BSTR类型时都使用的CComBSTR作为中转,因为这 样不需要自己释放内存。但是要注意的是,转换后BSTR指向的是 CComBSTR的内存,所以一旦CComBSTR被销毁了,BSTR也就失效了, 这样会导致不可预知的错误。所以一定要保证CComBSTR大于或等于BSTR 的周期。 下面用法是错误的: strBigBSTR = CComBSTR(( LPCTSTR )strCString ).m_str; 因为CComBSTR在此条语句结束后就被析构了。
/
本文档为【字符串类型转换总结】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索