解决方案 »

  1.   

    我怎么找到这个位置????MR_client.exe 中的 0x7551c41f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0034f0a8 处的 CFileException。
      

  2.   

    在Debug模式下来运行,出那个错误了,点击重试,就知道断哪儿了
      

  3.   

    找到问题所在了
     
    case 2:recv(tcpsock, dst1, 1024, 0);
                    if(dst1[0] == 'F' && dst1[1] == 'I' && dst1[2] == 'L' && dst1[3] == 'E')
                    {
                        strcat(file_path, dst1 + 4);
                        if(re_file.Open(file_path, CFile::modeCreate|CFile::modeWrite) == FALSE)
                        {
                            AfxMessageBox("创建文件失败!");
                            break;
                        }
                        flag = 3;
                        break;
                    }
    case 3:
                    if(temp!=NULL)
        {
        delete [] temp;
        temp=NULL;
        }
                    temp = new char[1024 * 56];
                    memset(temp, 0, 1024 * 56);
                    /*re_file.Close();*/
                   
                    x=recv(tcpsock,temp,1024*56,0);
            /*re_file.Write(temp,x);*/
                    total += x;
                    m_Progress.SetPos(total);
                    delete []temp;
                    temp = NULL;
                    if(total >= m_length)
                    {
                        re_file.Close();
                        memset(dst, 0, 1024);
                        memset(dst1, 0, 1024);
                        flag = 1;
                        total = x = 0;
                        CString str_commom_info;
                        CString str1;
                        str_commom_info.Format("文件名    :%s\r\n",   dst1);
                        str1.Format(   "文件大小 :%d\r\n", m_length);
                        str_commom_info += str1;
                        str_commom_info += "接收成功!";
                        GetDlgItem(IDC_COMMOM_INFO)->SetWindowTextA(str_commom_info);
                    }
                    break;
    //   在case 3:   中文件句柄 re_file 不可用了。这是为什么啊。。申明的全局变量
    //CFile  re_file;   
      

  4.   


    你这个文件没有打开呗,你只有在case 2 中open了一下,比如case 3走在case 2之前,这个文件都还没打开你就拿来用了,肯定不行
      

  5.   


    你这个文件没有打开呗,你只有在case 2 中open了一下,比如case 3走在case 2之前,这个文件都还没打开你就拿来用了,肯定不行
    那怎么保证case2 在case3之前运行呢??
    调用堆栈的窗口是不是这个啊??
      

  6.   

    1、你那个case不是在类的成员函数里面吗?如果这个类操作的是同一个文件,那么你在设计的时候最好保证类的任何成员函数访问这个文件的时候这个文件都是有效的2、汗!!!!!   你这个是局部变量窗口哇
      

  7.   

    那怎么保证case2 在case3之前运行呢??
    -----------------------------------------------------------------------------------------
    我只是这样给你举一个出错的例子而已!更何况怎么能保证case2 在case3之前运行呢?因为你写 的只是一个函数逻辑,真实的情况是不可预期的啊
    第一、你设计本身出了问题(看我上面说的)
    第二、你的代码本身健壮性就很弱(使用资源的时候没有判断资源的合法性)
      

  8.   


    额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"
      

  9.   


    额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"我用的是VS2010  ,貌似没有!!!!
      

  10.   


    额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"我用的是VS2010  ,貌似没有!!!!
    程序F5调试跑起来先,然后   工具栏“调试”——>"窗口"——>"调用堆栈"
      

  11.   


    额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"我用的是VS2010  ,貌似没有!!!!
    程序F5调试跑起来先,然后   工具栏“调试”——>"窗口"——>"调用堆栈"哦了,,,谢谢!!!!