外网的一个UCS32编码宽字符函数EncodeUcs2(const char *pSrc, unsigned char *pDst, int nSrcLength)
{
int nDstLength; // UNICODE宽字符数目
WCHAR wchar[128]; // UNICODE串缓冲区
// 字符串-->UNICODE串
nDstLength = MultiByteToWideChar(CP_ACP, 0, pSrc, nSrcLength, wchar, 128);
// 高低字节对调,输出
for(int i=0; i<nDstLength; i++)
{
*pDst++ = wchar
>> 8; // 先输出高位字节
*pDst++ = wchar & 0xff; // 后输出低位字节
}
return nDstLength * 2;
}
觉得函数写的很正确,但是调试运行后,进行测试,发现并没有实现把字符串转换成UNICODE宽字符的功能。
例如,假设个字符串 char a[3]="ab";
调用函数encodeucs2(a,pdst,.........)后,跟踪调试,发现pdst里面为空,麻烦哪位大侠帮忙看看,是什么问题??