1.char*与wchar_t*的转换
/*=====================wchar_t*===>char*============================*/
static char* w2a(wchar_t* lpszSrc, UINT CodePage = CP_ACP)
{
if (lpszSrc != NULL)
{
int nANSILen = WideCharToMultiByte(CodePage, 0, lpszSrc, -1, NULL, 0, NULL, NULL);
char* pANSI = new char[nANSILen + 1];
if (pANSI != NULL)
{
ZeroMemory(pANSI, nANSILen + 1);
WideCharToMultiByte(CodePage, 0, lpszSrc, -1, pANSI, nANSILen, NULL, NULL);
return pANSI;
}
}
return NULL;
}
/*=====================char*===>wchar_t*============================*/
static wchar_t* a2w(char* lpszSrc, UINT CodePage = CP_ACP)
{
if (lpszSrc != NULL)
{
int nUnicodeLen = MultiByteToWideChar(CodePage, 0, lpszSrc, -1, NULL, 0);
LPWSTR pUnicode = new WCHAR[nUnicodeLen + 1];
if (pUnicode != NULL)
{
ZeroMemory((void*)pUnicode, (nUnicodeLen + 1) * sizeof(WCHAR));
MultiByteToWideChar(CodePage, 0, lpszSrc,-1, pUnicode, nUnicodeLen);
return pUnicode;
}
}
return NULL;
}