if(dlg->DoModal()==IDOK){
str=dlg->GetPathName();
m_edit.SetWindowTextW(str);
CStringA strA(str);
FILE*file=fopen(LPCSTR(strA),"r+t");
if(file){
char data[1000]={0};
fread(data,sizeof(char),1000,file);
fclose(file);
m_show.SetWindowText(data);
}
}错误指向最后一句,怎么改啊?

解决方案 »

  1.   

    你这个data不是字符串吧  转换成字符串类型  用这个函数format
      

  2.   

    第三句m_edit.SetWindowTextW(str);和最后一句m_show.SetWindowText(data);
    想想你为啥要用这两句,这两句不一样在哪里
      

  3.   

    m_show.SetWindowText(data);
    -->
    m_show.SetWindowText(CString(data));编码问题?
      

  4.   

    既然用了MFC,就不要用SetWindowText这种SDK的原始方法。
    给m_edit绑定一个CString,修改了之后直接UpdateData(FALSE);
      

  5.   

    1,在MFC里你可以用CString
    2,如果你用了char*类型,也同样可以用这样的方式去格式化到CString
    char data[1000]={0};
    CString str;
    str.Format("%s",data);
    然后后面用str作为参数
      

  6.   


    1.m_show.SetWindowText(data);
    -->
    m_show.SetWindowText(CString(data));2char data[1000]={0};
    CString str;
    str.Format("%s",data);
    m_show.SetWindowText(str);
    3char data[1000]={0};
    CString str;
    str=data;
    m_show.SetWindowText(str);
    借花献佛哈哈哈
      

  7.   

    char data[1000]={0};
    CString str;
    str.Format("%s",data);
      

  8.   

    类型转换问题,用Format转化或直接定义data为CString