char与TCHAR相互转化
生活随笔
收集整理的這篇文章主要介紹了
char与TCHAR相互转化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
char與TCHAR之間的轉化主要用到函數MultiByteToWideChar和WideCharToMultiByte
char轉TCHAR
char?strUsr[10]?=?"Hello";?? TCHAR?Name[100];?? #ifdef?UNICODE?? ????MultiByteToWideChar(CP_ACP,?0,?strUsr,?-1,?Name,?100);?? #else?? ????strcpy(Name,?strUsr);?? #endif??
char strUsr[10] = "Hello";
TCHAR Name[100];
#ifdef UNICODEMultiByteToWideChar(CP_ACP, 0, strUsr, -1, Name, 100);
#elsestrcpy(Name, strUsr);
#endif
TCHAR轉char
[cpp] view plain copy print?char*?ConvertLPWSTRToLPSTR?(LPWSTR?lpwszStrIn)?? {?? ????LPSTR?pszOut?=?NULL;?? ????if?(lpwszStrIn?!=?NULL)?? ????{?? ????????int?nInputStrLen?=?wcslen?(lpwszStrIn);?? ?? ????????//?Double?NULL?Termination?? ????????int?nOutputStrLen?=?WideCharToMultiByte?(CP_ACP,?0,?lpwszStrIn,?nInputStrLen,?NULL,?0,?0,?0)?+?2;?? ????????pszOut?=?new?char?[nOutputStrLen];?? ?? ????????if?(pszOut)?? ????????{?? ????????????memset?(pszOut,?0x00,?nOutputStrLen);?? ????????????WideCharToMultiByte(CP_ACP,?0,?lpwszStrIn,?nInputStrLen,?pszOut,?nOutputStrLen,?0,?0);?? ????????}?? ????}?? ????return?pszOut;?? }??
char* ConvertLPWSTRToLPSTR (LPWSTR lpwszStrIn)
{LPSTR pszOut = NULL;if (lpwszStrIn != NULL){int nInputStrLen = wcslen (lpwszStrIn);// Double NULL Terminationint nOutputStrLen = WideCharToMultiByte (CP_ACP, 0, lpwszStrIn, nInputStrLen, NULL, 0, 0, 0) + 2;pszOut = new char [nOutputStrLen];if (pszOut){memset (pszOut, 0x00, nOutputStrLen);WideCharToMultiByte(CP_ACP, 0, lpwszStrIn, nInputStrLen, pszOut, nOutputStrLen, 0, 0);}}return pszOut;
}
char轉TCHAR
如果不是Unicode字符集,就不需要轉換,直接復制即可,如果不確定是否使用Unicode字符集,可以這樣寫
[cpp] view plain copy print?[cpp] view plain copy print?
總結
以上是生活随笔為你收集整理的char与TCHAR相互转化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC中如何从EDIT控件中获取文字
- 下一篇: 脚手架 mixin (混入)