C++ char*转CString
时间: 2024-12-26 15:30:49 浏览: 43
在C++中,将char*
转换成CString
通常是在使用MFC(Microsoft Foundation Classes)或者ATL(Active Template Library)等Windows API相关的库时,因为它们提供了一些特定的数据类型来处理字符串。下面是基本的步骤:
- 如果你在MFC中,可以使用
LPCTSTR
(通常是LPCSTR
或LPWSTR
,取决于字符编码),它是CStrings的一个派生类型,可以直接从char*
构造:
TCHAR* szTemp = _tcscpy(new TCHAR[wcslen(str)], str);
CString csStr(szTemp);
delete[] szTemp;
这里 _tcscpy
函数用于复制宽字符串,wcslen
获取原始字符串长度。
- 如果使用C++11及以上版本,你可以利用
std::wstring_convert
和std::codecvt_utf8_utf16
来进行转换:
#include <locale>
#include <codecvt>
#include <string>
std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> cvt;
std::wstring wstr = cvt.from_bytes(std::string(str));
CString csStr(wstr.c_str());
这里先将UTF-8编码的char*
转换成了wstring
,然后转换为CString
。
注意:CString
通常用于处理Unicode字符串,而char*
默认可能是单字节编码,所以在转换之前需要确保它们编码一致。
相关推荐


















