WritePrivateProfileString输出配置文件 乱码解决办法

WritePrivateProfileString输出配置文件 乱码VOID WINAPI Outputini(BYTE *pData,int len){WCHAR*szMyWch

WritePrivateProfileString输出配置文件 乱码
VOID WINAPI Outputini(BYTE *pData,int len)
{
WCHAR*szMyW;
char*szMy;
charszFile[MAX_PATH];

szMyW = new WCHAR[len*2];
szMy = new char[len];

memcpy(szMyW,pData,len*2);

::WideCharToMultiByte (CP_ACP,WC_COMPOSITECHECK,szMyW,-1,szMy,sizeof(szMy),NULL,NULL);

sprintf_s(szFile, "d:\\outbuf\\%d.ini", ::GetCurrentProcessId ());

::WritePrivateProfileStringA("文字","文字",szMy,szFile);

return;
}

输出结果:
[文字]
文字=你好?D

请问怎么解决后面的乱码?

[解决办法]
szMyW = new WCHAR[len*2 + 1];
memcpy(szMyW,pData,len*2);
szMyW[len - 1] = 0;