下面这个函数,我用char ansi[80] = "asdf";为参数调用的,可是返回值是101,我的问题如下:
1.为什么返回的是2进制啊?
2.即使是2进制(相当与10进制的5)也不是转换后的宽字符所需要的缓冲区大小啊,而是源字符串的大小嘛!~而我要得到宽字符所需要的缓冲区大小.
3._itoa,_itow的最后一个参数怎么用,MSDN上说传2-36的数,具体是什么意思啊?int AnsiToUnicode(PSTR pAnsiStr)
{
int nLenAnsiStr = 0; //获取转换字符串所需要的缓存大小
nLenAnsiStr = MultiByteToWideChar(CP_ACP, //指定在Ansi代码页查找
  0, //该标志位通常为0
  pAnsiStr, //要转换的Ansi字符串
  -1, //-1用于确定源字符串的长度(到“\0”结束的长度)
  NULL, //转换后存放宽字符的缓冲
  0); //如果该标志为0,那么不执行字符串的转换,而是
//使转换取得成功所需要的缓存的值

WCHAR buf[80];
MessageBox(NULL,_itow(nLenAnsiStr,buf,2),_itow(nLenAnsiStr,buf,2),MB_OK);
return(RETURN_SUCCESS);
}