TCHAR/wchar_t/LPWSTR这三种类型在Unicode字符集中是一样的。
在Qt框架中,经常会使用到windows的函数,而自VC6.0以后,windows默认使用Unicode字符集,windows也相应的推出了TCHAR作为char的宽字符集和多字符集的通用类型来表示char类型。Unicode字符集中,TCHAR代表的是wchar_t,而Qt中,大多数情况下使用QString,这时就需要wchar_t*和QString之间的相互转换。代码如下:
1.TCHAR *类型转为QString类型:
1 QString MainWindow::WcharToChar(const TCHAR *wp, size_t codePage) 2 { 3 QString str; 4 int len = WideCharToMultiByte(codePage, 0, wp, wcslen(wp), NULL, 0, NULL, NULL); 5 char *p = new char[len + 1]; 6 memset(p, 0, len + 1); 7 WideCharToMultiByte(codePage, 0, wp, wcslen(wp), p, len, NULL, NULL); 8 p[len] = '