如何将CString 转换为WCHAR * 急求 在线等
1个回答
展开全部
由于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是特定处理窄字符。
方法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是特定处理窄字符。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询