一个简单方便的ANSI和UNICODE互转方法
来源:互联网 发布:京瓷1800扫描软件 编辑:程序博客网 时间:2024/05/16 11:20
最近多次使用_bstr_t这个封装BSTR类,发现微软封装得还挺不错的,能很简单方便的ANSI和UNICODE互转。
VC6.0默认是没添加_bstr_t 类的支持头文件comdef.h,还需要用#include <comdef.h>添加头文件。
为什么能这样用呢?我们来看看_bstr_t的等号操作符
_bstr_t重载了const char*和const wchar_t*等号操作符,就是说可以用这两种类型的变量直接给_bstr_t对象赋值。
注:_bstr_t的构造函数也做了类似的重载,具体参考MSDN
我们再来看_bstr_t提取等号操作符
这就是说我们可以把_bstr_t当成const wchar_t*和const char*来使用,所以就出现了上面的示例代码。
提取等号操作符的时候请注意:这些操作符可用于提取封装的Unicode或多字节BSTR对象的原始指针。操作符返回实际的内部缓冲区的指针,这样生成的字符串不能被修改。
故需要修改该字符串的时候最好是把数据用
_tcscpy
strcpy
_mbscpy
wcscpy
拷贝的别的地方再处理,或者是放在CString中处理。
总的来说_bstr_t感觉就是一个超级强悍的”TEXT“或者”_T“转换。
写完后搜了下,也找到篇和这个思路一样的文章《字符串转换:wchar_t MultiByteToWideChar Unicode等》。
- 一个简单方便的ANSI和UNICODE互转方法
- VC++开发中最简单的Multi-Byte(ANSI)和Unicode互转方法,灵活使用Windows基本API:wsprintfA, wsprintfW
- 利用CString和CStringA方便地进行UNICODE字符串和ANSI字符串的转换
- 字符串Unicode和ANSI互转函数
- 自己封装的ANSI和UNICODE;UTF8和UNICODE互转的函数
- Ansi转Unicode方法之一
- unicode和ansi的比较
- UNICODE和ANSI的区别
- ANSI和UNICODE的区别
- unicode和ansi的区别
- string 和 wstring 互相转换的方法(即 Ansi & Unicode 在标准库下的互转)
- 【该方法本人实践成功(推荐)】Cstring 和 const char* , unicode和ANSI编码 的一个具体应用
- (转)规范化编程:ANSI和UNICODE的使用
- 规范化编程:ANSI和UNICODE的使用(转)
- 将Unicode转为Ansi 字符的方法
- Ansi转Unicode 介绍2种方法
- UNICODE to ANSI 和 ANSI to UNICODE
- 成为符合ANSI和UNICODE的应用程序
- 春夏之交吃水果要注意
- display:none和visibility:hidden的区别
- 基于Visual C#2010 与WPF开发Windows 7电源管理
- __int64和按位与求1的个数
- 自我采访
- 一个简单方便的ANSI和UNICODE互转方法
- DonNet餐饮管理系统(源码发布)
- 第二届云计算大会上拍的几张照片
- GUI 0.6计划!-----The Flash will into QuartzGUI!
- java内存分析【精辟】
- 第23个世界无烟日 让烟草远离女性
- 新控件
- (转)Ajax可以实现服务器推送的方式(infoQ)
- 浅讲java正则表达式