MFC filecore.cpp 324 mfc错误调试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我怎么找到这个位置????MR_client.exe 中的 0x7551c41f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0034f0a8 处的 CFileException。 在Debug模式下来运行,出那个错误了,点击重试,就知道断哪儿了 找到问题所在了 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; 你这个文件没有打开呗,你只有在case 2 中open了一下,比如case 3走在case 2之前,这个文件都还没打开你就拿来用了,肯定不行 你这个文件没有打开呗,你只有在case 2 中open了一下,比如case 3走在case 2之前,这个文件都还没打开你就拿来用了,肯定不行那怎么保证case2 在case3之前运行呢??调用堆栈的窗口是不是这个啊?? 1、你那个case不是在类的成员函数里面吗?如果这个类操作的是同一个文件,那么你在设计的时候最好保证类的任何成员函数访问这个文件的时候这个文件都是有效的2、汗!!!!! 你这个是局部变量窗口哇 那怎么保证case2 在case3之前运行呢??-----------------------------------------------------------------------------------------我只是这样给你举一个出错的例子而已!更何况怎么能保证case2 在case3之前运行呢?因为你写 的只是一个函数逻辑,真实的情况是不可预期的啊第一、你设计本身出了问题(看我上面说的)第二、你的代码本身健壮性就很弱(使用资源的时候没有判断资源的合法性) 额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈" 额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"我用的是VS2010 ,貌似没有!!!! 额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"我用的是VS2010 ,貌似没有!!!!程序F5调试跑起来先,然后 工具栏“调试”——>"窗口"——>"调用堆栈" 额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"我用的是VS2010 ,貌似没有!!!!程序F5调试跑起来先,然后 工具栏“调试”——>"窗口"——>"调用堆栈"哦了,,,谢谢!!!! 源码分享斗地主算法实现 再请教:用c做的.lib文件,可以在eVC下调用吗? 用并口传输文件,小文件(20M~30M)可以,大文件(30多M/40多M或以上的)就不行,为什么? [求助]C++关于字符串在二进制文件中读写的问题 如果获得字节数据中的中文 请问如何入手学习vc?(有一点c++的基础) 我想做个Active服务端的ADO控件. 请问要写一个一直在计算机中运行的程序,在指定时间关机该怎么做? CListCtrl派生类的界面问题 error C2065: “IDD_DataDlg”: 未声明的标识符 MFC读取文件中的数据的问题 对话框的弹出
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;
你这个文件没有打开呗,你只有在case 2 中open了一下,比如case 3走在case 2之前,这个文件都还没打开你就拿来用了,肯定不行
你这个文件没有打开呗,你只有在case 2 中open了一下,比如case 3走在case 2之前,这个文件都还没打开你就拿来用了,肯定不行
那怎么保证case2 在case3之前运行呢??
调用堆栈的窗口是不是这个啊??
-----------------------------------------------------------------------------------------
我只是这样给你举一个出错的例子而已!更何况怎么能保证case2 在case3之前运行呢?因为你写 的只是一个函数逻辑,真实的情况是不可预期的啊
第一、你设计本身出了问题(看我上面说的)
第二、你的代码本身健壮性就很弱(使用资源的时候没有判断资源的合法性)
额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"
额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"我用的是VS2010 ,貌似没有!!!!
额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"我用的是VS2010 ,貌似没有!!!!
程序F5调试跑起来先,然后 工具栏“调试”——>"窗口"——>"调用堆栈"
额,,,调用堆栈的窗口时怎么调出来的??工具栏“调试”——>"窗口"——>"调用堆栈"我用的是VS2010 ,貌似没有!!!!
程序F5调试跑起来先,然后 工具栏“调试”——>"窗口"——>"调用堆栈"哦了,,,谢谢!!!!