void CFFDlg::OnBnClickedButton2()
{
CString out;
CString s = "ACBV<啦饿啊>ASDA"; int start = 0;
int count = 5;USES_CONVERSION; 
WCHAR* wc = A2W((LPSTR)(LPCSTR)s);
WCHAR* wd = new WCHAR[];
wcsncpy(wd,wc+start,count);
wd[count] = '\0';
CString ss(wd); AfxMessageBox(ss);
}AfxMessageBox是对的,结果对话框退出的时候出错

解决方案 »

  1.   

    和WCHAR* wd = new WCHAR[];对应的,应该有一句delete wd;
      

  2.   

    wcsncpy的时候越界,new的时候空间不对,只有两个BYTE,应该是宽字符串的长度。
      

  3.   

    另外,申请的空间要释放。delete []wd
      

  4.   

    WCHAR* wd = new WCHAR[];
    意味着你已经出现野指针了,应该改成:
    WCHAR* wd = new WCHAR[50];
    最后加上:
            delete []wd;
    这样才能正确释放内存!