MFC CString 转成std::string
时间: 2024-09-30 10:13:18 浏览: 36
C ++:将MFC CString转换为std :: string
5星 · 资源好评率100%
MFC(Microsoft Foundation Classes)是微软为其Windows应用程序提供的一个C++类库,其中的CString是一个字符字符串类。如果你想要将MFC的CString转换为C++标准库中的std::string,可以按照以下步骤操作:
1. 首先,确保包含必要的头文件:
```cpp
#include "afxstrings.h" // 如果是在MFC项目中,包含了CString类
#include <string>
```
2. 使用`AfxToWideChar()`函数将宽字符版本的CString转换为宽字符串(wchar_t*),因为CStrings默认存储为宽字符:
```cpp
std::wstring wideString = AfxToWStr(cstr); // cstr是你需要转换的 CString实例
```
这里假设cstr是一个有效的MFC CString。
3. 然后,你可以将宽字符串转换为std::wstring:
```cpp
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::string utf8String = converter.to_bytes(wideString);
```
4. 最后,如果需要std::string而不是std::wstring,可以进一步将其转换:
```cpp
std::string finalString(utf8String.begin(), utf8String.end());
```
阅读全文