tchar转string 多字节字符集
时间: 2023-11-18 22:06:22 浏览: 141
将TCHAR转换为string,需要先确定TCHAR是Unicode字符集还是多字节字符集(MBCS)。如果TCHAR是MBCS,可以使用MultiByteToWideChar函数将其转换为Unicode字符集,然后再使用WideCharToMultiByte函数将Unicode字符集转换为string。
下面是一个将TCHAR转换为string的示例代码,假设TCHAR是MBCS字符集:
```cpp
#include <string>
#include <Windows.h>
std::string tcharToString(const TCHAR* tcharStr)
{
int len = lstrlen(tcharStr);
int size = WideCharToMultiByte(CP_ACP, 0, tcharStr, len, NULL, 0, NULL, NULL);
char* buffer = new char[size];
WideCharToMultiByte(CP_ACP, 0, tcharStr, len, buffer, size, NULL, NULL);
std::string str(buffer, size);
delete[] buffer;
return str;
}
```
其中,CP_ACP表示使用系统默认的代码页,也可以使用其他的代码页。
使用示例:
```cpp
TCHAR tcharStr[] = _T("Hello, world!");
std::string str = tcharToString(tcharStr);
```
这样就将TCHAR转换为了string。
阅读全文