wchar_t* AnsiToUnicode( const char* szStr )
{
int nLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, NULL, 0 );
if (nLen == 0)
{
return NULL;
}
wchar_t* pResult = new wchar_t[nLen];
MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, szStr, -1, pResult, nLen );
return pResult;
}
inline char* UnicodeToAnsi( const wchar_t* szStr )
{
int nLen = WideCharToMultiByte( CP_ACP, 0, szStr, -1, NULL, 0, NULL, NULL );
if (nLen == 0)
{
return NULL;
}
char* pResult = new char[nLen];
WideCharToMultiByte( CP_ACP, 0, szStr, -1, pResult, nLen, NULL, NULL );
return pResult;
}
//在unicode环境下将TCHAR 转换为std::string
inline std::string TCHAR2STRING(TCHAR* str)
{
int nlen=WideCharToMultiByte(CP_ACP,0,str,-1,NULL,0,NULL,NULL);
char* res=new char[nlen*sizeof(char)];
WideCharToMultiByte(CP_ACP,0,str,-1,res,0,NULL,NULL);
return string(res);
}