0xC000005 kernel32.dll问题 一个奇怪的问题。

warmyellow 2009-04-11 04:27:50
SendFile函数 网络上传文件:
void SendFile(CSocket& getsocket,CFile &hf){
int size=hf.GetLength()/1024;
for(int i=0;i<size;i++){
char temp[1024]={0};
hf.Read(temp,1024);
getsocket.Send(temp, 1024);
hf.Seek(1024*(i+1),CFile::begin);
}
char newtemp[1024]={0};
hf.Read(newtemp,1024);
getsocket.Send(newtemp,1024);
AfxMessageBox(_T(newtemp));
}


CTimeOutSocket sockServer;
if(!AfxSocketInit()){
MessageBox(_T("套接字初始化问题!"),_T("内部错误"));
return;
}
if(!sockServer.Create()){
MessageBox(_T("套接字创建出现问题!"),_T("内部错误"));
return;
}
if(!sockServer.SetTimeOut(50000000)){
MessageBox(_T("超时设置失败!"),_T("内部错误"));
};
CFile hf;
CFileException fe;
char* pFileName = "C:\\avgfaceimage.xml";
if(!hf.Open(pFileName, CFile::modeRead, &fe))
{
MessageBox(_T("系统文件读取故障!"),_T("内部错误"));
return;
}
if(sockServer.Connect("127.0.0.1",1000)){
char szRecValue[1024] = {0};
CString strfirst;
DWORD filelength=hf.GetLength();
strfirst.Format("#Size#%d#",filelength);
sockServer.Send(strfirst, 24);
sockServer.Receive((void *)szRecValue, 1024);
strfirst=_T(szRecValue);
int size=filelength/1024;
if(strfirst==_T("#Ready#")){
SendFile(sockServer,hf);//去掉这个函数一下面一样被注释的代码代替就不会出错
// for(int i=0;i<size;i++){
// char temp[1024]={0};
// hf.Read(temp,1024);
// sockServer.Send(temp, 1024);
// hf.Seek(1024*(i+1),CFile::begin);
// }
// char newtemp[1024]={0};
// hf.Read(newtemp,1024);
// sockServer.Send(newtemp,1024);

char returnmsg[50]={0};
sockServer.Receive(returnmsg,1024);
CString msgstr=_T(returnmsg);
CString finalstr;
if(sockServer.IsTimeOut()){
sockServer.SetIsTimeOut(false);
MessageBox(_T("传输超时,请重传!"),_T("内部错误"));
return;
}
if(AfxExtractSubString(finalstr,msgstr,1,'#')){
if(finalstr==_T("Success")){
char res[1024]={0};
sockServer.Receive(res,1024);
finalstr=_T(res);
CString comt[2];
int filesize;
CFile wf;
CFileException we;
char* pFileName = "C:\\avg.txt";
if(!wf.Open(pFileName, CFile::modeCreate|CFile::modeWrite, &we))
{
AfxMessageBox(_T("内部错误!"));
return;
}
if(AfxExtractSubString(comt[0],finalstr,1,'#')){
if(comt[0]==_T("Size")){
if(AfxExtractSubString(comt[1],finalstr,2,'#')){
filesize=atoi(comt[1]);
sockServer.Send("#Ready#",1024);
ReceiveFile(sockServer,filesize,wf);
/* int size=filesize/1024;
//AfxMessageBox(_T("这里被执行了!"));
for(int i=0;i<size;i++){
char temp[1024]={0};
sockServer.Receive(temp, 1024);
wf.Write(temp,1024);
wf.Seek(1024*(i+1),CFile::begin);
}
char newtemp[1024]={0};
sockServer.Receive(newtemp,1024);
CString laststr;
laststr=_T(newtemp);
MessageBox(laststr);
wf.Write(laststr,laststr.GetLength());
*/ char xtemp[1024]={0};
CString laststr;
sockServer.Receive(xtemp,1024);
CString xlaststr=_T(xtemp);
if(AfxExtractSubString(laststr,xlaststr,1,'#')){
if(laststr==_T("Success")){
if(IDOK==MessageBox(_T("是否确认本次考勤!"),_T("提示"),MB_YESNO)){
sockServer.Send("#Certain#",100);
}else{
sockServer.Send("#Cancel#",100);
}
}else{
MessageBox(_T("不可靠网络传输"),_T("外部错误"));
return;
}
}else{
MessageBox(_T("不可靠网络传输"),_T("外部错误"));
return;
}
}else{
MessageBox(_T("不可靠网络传输"),_T("外部错误"));
return;
}
}else{
MessageBox(_T("不可靠网络传输!"),_T("外部错误"));
return;
}
}else{
MessageBox(_T("不可靠网络传输!"),_T("外部错误"));
return;
}
}else{
MessageBox(_T("服务器接收数据失败"),_T("外部错误"));
return;
}
}else{
MessageBox(_T("网络连接丢失,请重新连接"),_T("外部错误"));
return;
}
}else{
MessageBox(_T("网络连接失败请重新发送!"),_T("外部错误"));
return;
}

}else{
MessageBox(_T("无法连接服务器请重试!"),_T("外部错误"));
return;
}
if(!sockServer.KillTimeOut()){
MessageBox(_T("关闭超时失败!"),_T("内部错误"));
};
sockServer.Close();

红色部分用SendFile()函数代替就这个函数就会出现问题:
Unhandled exception in xxx.exe:Kernel32.dll:0Xc000005 access viloation
但是不是在调用SendFile()时出错而且好像SendFIle的代码是正常执行了的 是在后面其他地方突然跳出
当然如果不要SendFile()函数用SendFile里面的代码直接代替SendFIle()函数调用的化 就不会有问题.
看有没有人你解决。
...全文
273 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
warmyellow 2009-04-11
  • 打赏
  • 举报
回复
怎么没人 再次UP
warmyellow 2009-04-11
  • 打赏
  • 举报
回复
自己up
warmyellow 2009-04-11
  • 打赏
  • 举报
回复
First-chance exception in TestClient.exe (KERNEL32.DLL): 0xC0000005: Access Violation.
内容概要:本文系统研究了基于豪猪优化算法(CPO)的多无人机协同集群在三维空间中的避障路径规划问题,聚焦于实现以最低成本为目标的航迹优化,综合考虑路径长度、飞行高度、威胁规避及转弯角度等多个关键因素。通过构建精细化的三维环境模型与多无人机协同机制,采用Matlab平台实现CPO算法的仿真与验证,充分展示了该算法在复杂动态障碍环境下的高效搜索能力与全局优化性能。研究不仅涵盖了路径规划的数学建模与目标函数设计,还深入探讨了算法的收敛特性与鲁棒性,为智能群体系统在实际场景中的应用提供了理论依据与技术支撑。; 适合人群:具备一定编程基础和优化算法背景,从事无人机系统控制、智能路径规划、群体协同、人工智能与自动化等相关领域的科研人员、高校研究生及工程技术人员。; 使用场景及目标:①应用于多无人机协同执行侦察、灾害监测、应急救援、区域巡检等复杂任务中的自主路径规划;②为智能优化算法在三维动态环境下的路径决策问题提供可复现的技术范例;③支持研究人员对CPO算法与其他主流群智能算法(如PSO、GWO、WOA等)进行性能对比与改进研究,推动路径规划技术的发展。; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点理解目标函数的多维度建模方式与CPO算法的迭代优化流程,可通过调整环境参数与约束条件进行仿真实验,对比不同算法在相同场景下的路径质量与收敛速度,从而深入掌握其优势与适用边界。
内容概要:本文围绕电动汽车参与电力系统运行备用的能力评估展开深入研究,利用Matlab代码实现对电动汽车集群提供运行备用服务的建模与仿真分析。研究重点在于量化电动汽车作为分布式灵活资源参与电网辅助服务的潜力,通过构建精细化的数学模型,分析其可调功率容量、响应速度、时空分布特性及聚合能力,并采用多面体聚合、内近似模型与闵可夫斯基和等先进方法精确刻画其可调度能力边界。研究进一步结合大规模电动汽车接入场景,探讨其在多时间尺度调度框架下参与调峰、调频等辅助服务的优化策略,评估其对提升高比例可再生能源电网灵活性与稳定性的贡献,最终通过仿真验证所提模型与方法的有效性与实用性。; 适合人群:具备电力系统分析、智能电网、新能源汽车或优化调度等相关专业背景,熟悉Matlab/Simulink仿真工具,从事科研、工程应用的高校研究生、科研人员及电力行业工程师。; 使用场景及目标:①精确评估大规模电动汽车集群在不同约束条件下可提供的运行备用容量;②研究电动汽车在日前、日内及实时调度中的动态响应能力与优化调度策略;③为高渗透率新能源电力系统提供基于移动储能的灵活性资源解决方案,支撑电网安全经济运行。; 阅读建议:建议结合Matlab代码与技术文档同步学习,重点关注多面体聚合建模、能力边界计算及优化调度算法的设计与实现,可进一步拓展至V2G(车辆到电网)、需求响应等互动场景进行二次开发与应用验证。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧