TCHAR转换char 例子
时间: 2024-10-08 15:14:09 浏览: 22
TCHAR转char通常涉及到宽字符和多字节字符之间的转换,在Windows API中,可以使用`MultiByteToWideChar`和`WideCharToMultiByte`函数来进行这种转换。这里是一个简单的例子:
```cpp
#include <windows.h>
#include <tchar.h>
#include <locale.h>
void ConvertTCharToChar(TCHAR szTcharSource[], char* szCharDestination, int nBufferLength) {
int nCharsConverted;
// 将宽字符转换成多字节字符
if (MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, szTcharSource, -1, NULL, 0) == 0) {
// 处理错误
}
MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, szTcharSource, -1, szCharDestination, nBufferLength);
// 转换后的长度
nCharsConverted = WideCharToMultiByte(CP_ACP, 0, szCharDestination, -1, NULL, 0, NULL, NULL);
szCharDestination[nCharsConverted] = '\0'; // 添加终止符
}
// 使用示例
int main() {
TCHAR szTchar = _T("你好");
char szChar[64];
ConvertTCharToChar(szTchar, szChar, sizeof(szChar));
printf("转换后的字符:%s\n", szChar);
return 0;
}
```
在这个例子中,首先将宽字符`szTcharSource`转换成了多字节字符,并存储在`szCharDestination`中。然后计算实际转换的字符数,并添加终止符`\0`。
阅读全文