if(!desfile.Open("download.txt",CFile::modeWrite|CFile::modeCreate))
{
MessageBox("打开文件失败");
return FALSE;
}
desfile.Write(despbuf,strlen(despbuf));
desfile.Close();debug时,在close()这里出错,请问是怎么回事?despbuf是char*类型

解决方案 »

  1.   

    BOOL CUDDlg::UpFileCombine()
    {
       ......
    CFile desfile;
    if(!desfile.Open("盘点.txt",CFile::modeWrite|CFile::modeCreate))
    {
    MessageBox("打开文件失败");
    SendMessage(WM_CLOSE,0,0);
    return FALSE;
    }
    desfile.Write(despbuf,strlen(despbuf));
    desfile.Close();
    delete []despbuf;
    delete []soupbuf; UpFileConver();
    return TRUE;
    }
    刚才我弄错了,应该是在最后一行的return TRUE;这里出错。
      

  2.   

    好像是Write哪儿出的错吧。
    你的despbuf中肯定是没有初始化的内存块或者里不是字符串。所以导致strlen返回无限大。
    Write当然出错了。
    以上是我猜的。(跟真的是吧:)
      

  3.   

    UpFileConver出错了。
    要不就是despbuf的错。
      

  4.   

    despbuf你分配空间了吗?没有可能就是这里出错。要不就是UpFileConver();那里出错.
      

  5.   

    delete []despbuf;
    delete []soupbuf; UpFileConver();1。UpFileConver用到despbuf  soupbuf 没?
    2。UpFileConver 用到desfile没?
    3。despbuf,soupbuf 是New 的不?
      

  6.   

    你把delete那几行代码屏蔽了试试