如何将CString 转换为WCHAR * 急求 在线等
答案:1 悬赏:30 手机版
解决时间 2021-04-12 14:54
- 提问者网友:遮云壑
- 2021-04-12 09:16
如何将CString 转换为WCHAR * 急求 在线等
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-04-12 10:36
由于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是特定处理窄字符。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯