TCHAR * 转为char *
char* TCHARToChar(const TCHAR* pTchar)
{
char* pChar = NULL;
#ifdef _UNICODE
int nLen = wcslen(pTchar) + 1;
pChar = new char[nLen * 2];
WideCharToMultiByte(CP_ACP, 0, pTchar, nLen, pChar, 2 * nLen, NULL, NULL);
#else
int nLen = strlen(pTchar) + 1;
pChar = new char[nLen];
memcpy(pChar, pTchar, nLen*sizeof(char));
#endif
return 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 _UNICODE
pTchar = new wchar_t[nLen];
MultiByteToWideChar(CP_ACP, 0, pChar, nLen, pTchar , nLen);
#else
pTchar = new char[nLen];
wcsncp(pTChar, pChar , nLen*sizeof(char));
#endif
return pTchar ;
}
使用方式同上