cstring 转wstring
时间: 2023-08-22 19:08:34 浏览: 101
可以使用以下代码将 CString 转换为 wstring:
```cpp
CString str = L"Hello, world!"; // 假设 CString 中存储的是 Unicode 字符串
int len = str.GetLength();
wchar_t* buffer = new wchar_t[len+1];
wcscpy_s(buffer, len+1, (LPCTSTR)str);
wstring wstr(buffer);
delete[] buffer;
```
首先将 CString 转换为 wchar_t*,然后创建一个 wstring 对象并将 wchar_t* 赋值给它。最后记得释放内存。
相关问题
CString 转wstring
可以使用以下代码将 CString 转换为 wstring:
```cpp
CString str = L"Hello, world!"; // 假设 CString 中存储的是 Unicode 字符串
int len = str.GetLength();
wchar_t* buffer = new wchar_t[len+1];
wcscpy_s(buffer, len+1, (LPCTSTR)str);
wstring wstr(buffer);
delete[] buffer;
```
首先将 CString 转换为 wchar_t*,然后创建一个 wstring 对象并将 wchar_t* 赋值给它。最后记得释放内存。
CString 转std::wstring
可以使用 CString 的 GetBuffer 方法获取其内部的字符数组,并将其转换为 std::wstring 类型,代码如下:
```
CString str;
// 假设 str 中存储的是 Unicode 编码的字符串
std::wstring wstr(str.GetBuffer());
```
需要注意的是,GetBuffer 方法获取的字符数组是可变的,如果需要在其后续操作中使用 CString 对象,请在使用完毕后调用 ReleaseBuffer 方法释放字符数组的控制权。
阅读全文