string、wstring和CString相互转化
时间: 2024-01-09 22:03:08 浏览: 162
可以使用以下方法将string、wstring和CString相互转化:
1. string和CString之间的转化:
将string转化为CString,可以使用.c_str()方法:
```
string str = "hello world";
CString cstr = str.c_str();
```
将CString转化为string,可以使用CString的.GetString()方法:
```
CString cstr = "hello world";
string str = (LPCTSTR)cstr.GetString();
```
2. wstring和CString之间的转化:
将wstring转化为CString,可以使用.wc_str()方法和ATL的CA2W宏:
```
wstring wstr = L"hello world";
CString cstr = CA2W(wstr.c_str());
```
将CString转化为wstring,可以使用ATL的CW2T宏和CString的.GetLength()方法:
```
CString cstr = "hello world";
wstring wstr = CW2T(cstr.GetString(), CP_UTF8, cstr.GetLength());
```
3. string和wstring之间的转化:
将string转化为wstring,可以使用ATL的CA2W宏:
```
string str = "hello world";
wstring wstr = CA2W(str.c_str());
```
将wstring转化为string,可以使用ATL的CW2A宏:
```
wstring wstr = L"hello world";
string str = CW2A(wstr.c_str());
```
需要注意的是,以上方法都需要包含相应的头文件(如<atlstr.h>、<string>等)。
阅读全文