一个简单方便的ANSI和UNICODE互转方法

本文详细介绍了如何使用_bstr_t类进行ANSI和UNICODE字符串的简单方便互转,包括赋值和显示示例,以及等号操作符和提取等号操作符的使用说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近多次使用_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等 》。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值