如何将CString 转换为WCHAR * 急求 在线等

 我来答
百度网友6eab688
2012-08-28 · TA获得超过4691个赞
知道大有可为答主
回答量:962
采纳率:50%
帮助的人:947万
展开全部
由于CString是对象,WCHAR*是宽字符的缓存,提供两种方法
方法1. 建立外部WCHAR*的数组,然后将CString的内容复制到这个数组;
CString strOrg;
WCHAR buf[STR_LEN];
CStringW strWide = CT2CW(strOrg); // 将T字符转换成宽字符
wcscpy(buf, strWide);

方法2. 取得CString内部使用的缓存;
CStrin strOrg;
CStringW strWide = CT2CW(strOrg); // 将T字符转换成宽字符
WCHAR *buf = strWide.GetBuffer(STR_LEN); // 获取CString内部缓存,并保证缓存长度是STR_LEN

所谓T字符TCHAR是指,如果定义了UNICODE宏,则是WCHAR,如果定义了多字节宏,则是CHAR,然后通过CT2CW,可以不管项目是宽还是窄字符,都统一转换成宽字符。

CString 是按TCHAR进行处理的,CStringW是特定处理宽字符,这里没用的的CStringA是特定处理窄字符。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式