关于MultiByteToWideChar的问题,求教!!!!
//--从CString到UNICODE的转换--
int CStringToUnicode(const CString &cStr, void *sChar)
{
wchar_t *lpszW = new WCHAR[1024];
int nLen = (MultiByteToWideChar(CP_ACP, 0,(LPTSTR)(LPCTSTR)cStr, -1, NULL, NULL)-1)*2;
MultiByteToWideChar(CP_ACP, 0, (LPTSTR)(LPCTSTR)cStr, -1, lpszW, nLen);
memcpy(sChar, lpszW, nLen);
delete[] lpszW;
return nLen;
}
//--从UNICODE到CString的转换--
CString UnicodeToCString(const char *sChar, int nStart, int nLen)
{
wchar_t *lpszW = new WCHAR[nLen/2];
memset((char*)lpszW, 0x00, nLen);
memcpy(lpszW, (LPWSTR)(sChar + nStart), nLen);
int rLen = nLen;
char *dChar = new char[rLen];
memset(dChar, 0x00, rLen);
WideCharToMultiByte(CP_ACP, 0, lpszW, rLen/2, dChar, rLen, NULL, NULL);
dChar[rLen] = '\0';
delete[] lpszW;
return dChar;
}
请问我这两个字符转换的函数有问题么?请指出谢谢!