TCHAR是一种字符串类型,它让你在以MBCS和UNNICODE来build程序时可以使用同样的代码,不需要使用繁琐的宏定义来包含你的代码,而char代表ASCII的字符 #ifdef UNICODE typedef wchar_t TCHAR; #else typedef char TCHAR; #endif 所以用MBCS来build时,TCHAR是char,使用UNICODE时,TCHAR是wchar_t.
TCHAR,char是可以同整型互换的类型。 TCHAR 赋值 #include <tchar.h>
TCHAR szWindowText[256]=_T("QQ2006");
char*、TCHAR*转换CString
***********************************************************************
*/ char* CPublic::THCAR2char(TCHAR* tchStr) { int iLen = 2*wcslen(tchStr);//CString,TCHAR汉字算一个字符,因此不用普通计算长度 char* chRtn = new char[iLen+1] wcstombs(chRtn,tchStr,iLen+1);//转换成功返回为非负值 return chRtn; } /* *********************************************************************** * 函数: CString2char * 描述:将CString转换为 char* * 日期: *********************************************************************** */ char* CPublic::CString2char(CString &str) { int len = str.GetLength(); char* chRtn = (char*)malloc((len*2+1)*sizeof(char));//CString的长度中汉字算一个长度 memset(chRtn, 0, 2*len+1); USES_CONVERSION; strcpy((LPSTR)chRtn,OLE2A(str.LockBuffer())); return chRtn; } //参考 /////////////////////// //Pocket PC上的UNICODE和ANSI字符串 //By Vassili Philippov, September 26, 2001. //杨方思歧 译 //////////////////////// /* *********************************************************************** * 函 数 名:GetAnsiString * 描 述:将CString(unicode)转换为char*(ANSI) * 参 数:CString &s 要转换的CString * 返 回 值:返回转换结果 * 创建日期:
* 最后修改:
*********************************************************************** */ char* GetAnsiString(const CString &s) { int nSize = 2*s.GetLength(); char *pAnsiString = new char[nSize+1]; wcstombs(pAnsiString, s, nSize+1); return pAnsiString; } ////////////////////////////// |
String,CString,TCHAR,char之间区别和联系
最新推荐文章于 2022-02-25 19:38:17 发布
