1.9w+
社区成员
int s2u(const char* pSrc, BYTE* pDst, int nSrcLength)
{
int nDstLen = 0;
int nOffset = nSrcLength;
int nTotal = 0;
WCHAR wchr[ 4096 ];
try
{
while( nOffset>0 )
{
nDstLen = ::MultiByteToWideChar(CP_ACP, 0, pSrc, nOffset, wchr, 4096);
if(nDstLen>0)
{
for(int i = 0; i < nDstLen ; i++ )
{
//取高位放在第一个BYTE
*(pDst++) = HIBYTE(wchr[i]);
//取低位放在下一个BYTE
*(pDst++) = LOBYTE(wchr[i]);
}
}
else
{
return -1;
}
nTotal += nDstLen<<1;
break;
}
}
catch( ... )
{
return -1;
}
return nTotal;
}