TCHAR转string
时间: 2024-09-05 15:00:45 浏览: 159
如果你有一个`TCHAR`类型的字符串并且需要将其转换为`std::string`,你可以采用两种方式:
1. 使用`wcstombs`函数[^1]:
```cpp
std::string ConvertTCHARToString(const TCHAR* tcharString) {
char charString[256];
wcstombs(charString, tcharString, sizeof(charString));
return std::string(charString);
}
```
这个函数将宽字符(Unicode)字符串`tcharString`转换为多字节字符(如ASCII)并存储到`charString`数组中,最后返回一个新的`std::string`。
2. 或者使用`WideCharToMultiByte`函数[^2](Windows API):
```cpp
int iLength;
std::string chRtn;
MultiByteToWideChar(CP_UTF8, 0, STR, -1, NULL, 0); // 获取原始字符串长度
iLength = MultiByteToWideChar(CP_ACP, 0, STR, -1, NULL, 0); // 计算转换后的缓冲区大小
chRtn.resize(iLength); // 初始化字符串
WideCharToMultiByte(CP_ACP, 0, STR, -1, &chRtn[0], iLength, NULL, NULL);
return chRtn;
```
这段代码首先计算原始字符串的UTF-8表示长度,然后调用`WideCharToMultiByte`将TCHAR转换为标准字符集(如CP_ACP),存储到`chRtn`字符串中。
阅读全文