编码问题
下面的这部分程序是UDP接收程序,现在的情况是如果去掉下面程序中的delete pResult;第一次接收没有问题,但是如果第二次接收的长度比第一次小,多余的部分还是第一次的多余部分,应该是第一次的没释放,但如果delete了,就是乱码,我现在是Unicode编码方式。求高手帮忙,急
SOCKADDR_IN addrFrom;
int len=sizeof(SOCKADDR);
char recvBuf[2000];
int retval;
while(TRUE)
{
retval=recvfrom(sock,recvBuf,2000,0,(SOCKADDR*)&addrFrom,&len);
if(SOCKET_ERROR==retval)
break;
int nLen = WideCharToMultiByte( CP_ACP, 0, (wchar_t*)recvBuf, -1, NULL, 0, NULL, NULL );
if (nLen == 0)
{
return 0;
}
char* pResult = new char[nLen];
WideCharToMultiByte( CP_ACP, 0, (wchar_t*)recvBuf, -1, pResult, nLen, NULL, NULL );
::PostMessage(hwnd, WM_RECVDATA1,0,(LPARAM)pResult);
delete pResult;
}