std::string转成CString
时间: 2023-07-09 15:34:21 浏览: 262
可以使用以下代码将一个 std::string 转换成 CString:
```cpp
#include <atlstr.h>
std::string str = "Hello World!";
CString cstr(str.c_str());
```
其中,`str` 是要转换的 std::string。将其使用 `c_str()` 函数转换成一个 const char*,然后将其传递给 CString 的构造函数即可。注意需要包含 `atlstr.h` 头文件。
相关问题
std::string 怎么转Cstring
以下是两种将std::string转换为CString的方法:
1. 使用CA2T函数:
```cpp
std::string name = "convert";
CString c_name = CA2T(name.c_str());
```
2. 使用GetString函数:
```cpp
CString c_name = "convert";
std::string str = c_name.GetString();
```
std::string 转cString
可以使用Unicode将std::string字符串转换为CString字符串。具体实现方法可以参考以下代码:
```
CString CMyApp::TranslatestringToCStringByUnicode(IN const string& strSource) {
CString strResult = _T("");
strResult = strSource.c_str();
return strResult;
}
```
其中,strSource为需要转换的std::string字符串,strResult为转换后的CString字符串。
另外,如果需要将CString字符串转换为std::string字符串,也可以使用以下代码实现:
```
string CMyApp::TranslateCStringTostringByUnicode(IN CString& strSource) {
int nSourceLen = strSource.GetLength();
int nSourceBytes = WideCharToMultiByte(CP_ACP, 0, strSource, nSourceLen, NULL, 0, NULL, NULL);
char* chrTemp = new char[nSourceBytes + 1];
memset(chrTemp, 0, nSourceBytes + 1);
WideCharToMultiByte(CP_OEMCP, 0, strSource, nSourceLen, chrTemp, nSourceBytes, NULL, NULL);
chrTemp[nSourceBytes] = 0;
std::string strResult = chrTemp;
delete[] chrTemp;
return strResult;
}
```
阅读全文