Windows字符编码转换

利用ATL中的字符串装换宏,对Unicode和非Unicode编译环境下的字符进行宏定义封装,可以在ANSI、Unicode以及UTF-8之间进行快速转换。

#if (defined _UNICODE) || (defined UNICODE)
#ifndef _tstring   
#define _tstring wstring
#endif
#endif

#include <atlbase.h>
#define fcA2U(ASTR) (LPSTR)ATL::CW2A((ATL::CA2W(ASTR)), CP_UTF8)
#define fcW2U(WSTR) (LPSTR)ATL::CW2A((WSTR), CP_UTF8)
#define fcU2A(USTR) (LPSTR)ATL::CW2A(ATL::CA2W((USTR), CP_UTF8))
#define fcU2W(USTR) (LPWSTR)ATL::CA2W((USTR), CP_UTF8)
#define fcA2W(ASTR) (LPWSTR)ATL::CA2W(ASTR)
#define fcW2A(WSTR) (LPSTR)ATL::CW2A(WSTR)
#define fcA2A(ASTR) (LPSTR)(ASTR)
#define fcW2W(WSTR) (LPWSTR)(WSTR)
#if (defined _UNICODE) || (defined UNICODE)
#define fcU2T fcU2W
#define fcT2U fcW2U
#define fcA2T fcA2W
#define fcT2A fcW2A
#define fcW2T fcW2W
#define fcT2W fcW2W
#else
#define fcU2T fcU2A
#define fcT2U fcA2U
#define fcA2T fcA2A
#define fcT2A fcA2A
#define fcW2T fcW2A
#define fcT2W fcA2W
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值