转码(常用类型和字符转换)转码(常用类型和字符转换)
TCHAR * 转为char *
char* TCHARToChar(const TCHAR* pTchar){char* pChar = NULL;#ifdef _UNICODEint nLen = wcslen(pTchar) + 1;pChar = new char[nLen * 2];WideCharToMultiByte(CP_ACP, 0, pTchar, nLen, pChar, 2 * nLen, NULL, NULL);#elseint nLen = strlen(pTchar) + 1;pChar = new char[nLen];memcpy(pChar, pTchar, nLen*sizeof(char));#endifreturn pChar;}// 使用:char *p = TCHARToChar(pTchar);// ...delete [] p;p = NULL ;
char * 转为 TCHAR *
TCHAR* CharToTCHAR(const char* pChar){TCHAR *pTchar = NULL;int nLen = strlen(pChar) + 1;#ifdef _UNICODEpTchar = new wchar_t[nLen];MultiByteToWideChar(CP_ACP, 0, pChar, nLen, pTchar , nLen);#elsepTchar = new char[nLen];wcsncp(pTChar, pChar , nLen*sizeof(char));#endifreturn pTchar ;}
使用方式同上