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()函数调用的化 就不会有问题.
看有没有人你解决。
...全文
243 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.
[ExceptionInfo] CallStackAddresses=ntdll.dll::00011e58;ntdll.dll::00010d5c;msvcrt.dll::0001c2de;qqdownload.exe::00089d8e;qqdownload.exe::00087404;qqdownload.exe::00015c95;qqdownload.exe::000060c2;mfc42.dll::000024c0;mfc42.dll::000023bf;mfc42.dll::00002a85;mfc42.dll::00003244;mfc42.dll::000032f7;mfc42.dll::00001b9b; CallStackClasses=ntdll.dll::00011e58;ntdll.dll::00010d5c;msvcrt.dll::0001c2de;qqdownload.exe::00089d8e;qqdownload.exe::00087404;qqdownload.exe::00015c95;qqdownload.exe::000060c2;mfc42.dll::000024c0;mfc42.dll::000023bf;mfc42.dll::00002a85;mfc42.dll::00003244;mfc42.dll::000032f7;mfc42.dll::00001b9b;qqdownload.exe::0001ea41;mfc42.dll::00001b05;mfc42.dll::00001a58;mfc42.dll::0009847d;user32.dll::00008734;user32.dll::00008816;user32.dll::000089cd;user32.dll::000096c7;mfc42.dll::0000125a;mfc42.dll::0000b55f;mfc42.dll::0000cf95;qqdownload.exe::000acbab;qqdownload.exe::000a9858;ntdll.dll::0001056d;kernel32.dll::00016fd7;ntdll.dll::0001056d; CallStackModules=D:\QQDownload\QQDownload.exe|D:\Program Files\Kingsoft\Kingsoft Internet Security 2008\kis.dll|C:\WINDOWS\system\360safe\safemon\safemon.dll|C:\Herosoft\HeroV8\VCvtShell.dll|D:\QQDownload\xmain.dll|C:\Program Files\52hxw\Hxw.dll|D:\QQDownload\xcore.dll|C:\WINDOWS\system32\shdoclc.dll|D:\Program Files\Kingsoft\Kingsoft Internet Security 2008\KMailOEBand.DLL|C:\WINDOWS\system32\xpsp2res.dll|C:\WINDOWS\system32\uxtheme.dll|C:\WINDOWS\WinSxS\x86_Microsoft.VC80.MFCLOC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_91481303\MFC80CHS.DLL|C:\WINDOWS\system32\OLEPRO32.DLL|C:\WINDOWS\system32\NETAPI32.dll|C:\WINDOWS\system32\hnetcfg.dll|C:\WINDOWS\system32\MFC42LOC.DLL|C:\WINDOWS\system32\LPK.DLL|C:\WINDOWS\system32\ImgUtil.dll|C:\WINDOWS\system32\DBGHELP.dll|C:\WINDOWS\system32\mswsock.dll|C:\WINDOWS\System32\wshtcpip.dll|C:\WINDOWS\system32\WS2HELP.dll|C:\WINDOWS\system32\WS2_32.dll|C:\WINDOWS\system32\WSOCK32.dll|C:\WINDOWS\system32\msacm32.drv|C:\WINDOWS\system32\wdmaud.drv|C:\WINDOWS\system32\RICHED32.DLL|C:\WINDOWS\system32\msctfime.ime|C:\WINDOWS\system32\MFC42.DLL|C:\WINDOWS\system32\USP10.dll|C:\WINDOWS\system32\msls31.dll|C:\WINDOWS\system32\msimtf.dll|C:\WINDOWS\system32\MSCTF.dll|C:\WINDOWS\system32\mlang.dll|C:\WINDOWS\system32\RICHED20.dll|C:\WINDOWS\system32\mshtmled.dll|C:\WINDOWS\system32\CRYPTUI.dll|C:\WINDOWS\system32\USERENV.dll|C:\WINDOWS\system32\jscript.dll|C:\WINDOWS\system32\urlmon.dll|C:\WINDOWS\system32\SXS.DLL|C:\WINDOWS\system32\browseui.dll|C:\WINDOWS\system32\MSVCP60.dll|C:\WINDOWS\system32\SETUPAPI.dll|C:\WINDOWS\system32\Msimg32.dll|C:\WINDOWS\system32\IMM32.DLL|C:\WINDOWS\System32\CSCDLL.dll|C:\WINDOWS\System32\cscui.dll|C:\WINDOWS\system32\CRYPT32.dll|C:\WINDOWS\system32\WININET.dll|C:\WINDOWS\system32\LINKINFO.dll|C:\WINDOWS\system32\ntshrui.dll|C:\WINDOWS\system32\ole32.dll|C:\WINDOWS\system32\ATL.DLL|C:\WINDOWS\system32\WINMM.dll|C:\WINDOWS\system32\PSAPI.DLL|C:\WINDOWS\system32\WINTRUST.dll|C:\WINDOWS\system32\IMAGEHLP.dll|C:\WINDOWS\system32\iphlpapi.dll|C:\WINDOWS\system32\appHelp.dll|C:\WINDOWS\system32\MSASN1.dll|C:\WINDOWS\system32\rtutils.dll|C:\WINDOWS\system32\rasman.dll|C:\WINDOWS\system32\TAPI32.dll|C:\WINDOWS\system32\rasapi32.dll|C:\WINDOWS\system32\DNSAPI.dll|C:\WINDOWS\system32\WLDAP32.dll|C:\WINDOWS\System32\winrnr.dll|C:\WINDOWS\system32\rasadhlp.dll|C:\WINDOWS\system32\CLBCATQ.DLL|C:\WINDOWS\system32\COMRes.dll|C:\WINDOWS\system32\OLEAUT32.dll|C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\COMCTL32.dll|C:\WINDOWS\system32\midimap.dll|C:\WINDOWS\system32\MSACM32.dll|C:\WINDOWS\system32\VERSION.dll|C:\WINDOWS\system32\msvcrt.dll|C:\WINDOWS\system32\msv1_0.dll|C:\WINDOWS\system32\USER32.dll|C:\WINDOWS\system32\ADVAPI32.dll|C:\WINDOWS\system32\RPCRT4.dll|C:\WINDOWS\system32\GDI32.dll|C:\WINDOWS\system32\SHLWAPI.dll|C:\WINDOWS\system32\Secur32.dll|C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCR80.dll|C:\WINDOWS\WinSxS\x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_3bf8fa05\MFC80U.DLL|C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700\MSVCP80.dll|C:\WINDOWS\system32\kernel32.dll|C:\WINDOWS\system32\ntdll.dll|C:\WINDOWS\system32\msi.dll|C:\WINDOWS\system32\SHELL32.dll|C:\WINDOWS\system32\mshtml.dll|C:\WINDOWS\system32\shdocvw.dll| ExceptionAddress=7c931e58 ExceptionType=0xC0000005 Report=1
网狐6.6 服务器源代码&共享组件&数据库,包括服务器端所有组件(内核除外,现在市面上还没有6.6内核),共享组件(公共服务,界面控件,界面资源),以及全部数据库文件和脚本文件,6.6较6.5有较大改动,是学习研究的上等程序代码。 结合本人上次发布的客户端组件,即为网狐66系统模块全部源代码!!!官方售价几万,网上有人卖几百到几千不等,本程序绝对6.6新版代码(带道具),识货的下。 总共140M,7个解压包:1~7。 #ifndef KERNEL_ENGINE_HEAD_HEAD_FILE #define KERNEL_ENGINE_HEAD_HEAD_FILE ////////////////////////////////////////////////////////////////////////// //包含文件 #include #include #include #include #include //平台文件 #include "..\..\模板库\Template.h" #include "..\..\公共文件\Constant.h" #include "..\..\公共文件\GlobalDef.h" #include "..\..\共享组件\公共服务\ComService.h" ////////////////////////////////////////////////////////////////////////// //ADO 定义 #import "MSADO15.DLL" rename_namespace("ADOCG") rename("EOF","EndOfFile") using namespace ADOCG; typedef _com_error CComError; //COM 错误 typedef _variant_t CDBVarValue; //数据库数值 ////////////////////////////////////////////////////////////////////////// //导出定义 //导出定义 #ifndef KERNEL_ENGINE_CLASS #ifdef KERNEL_ENGINE_DLL #define KERNEL_ENGINE_CLASS _declspec(dllexport) #else #define KERNEL_ENGINE_CLASS _declspec(dllimport) #endif #endif //模块定义 #ifndef _DEBUG #define KERNEL_ENGINE_DLL_NAME TEXT("KernelEngine.dll") //组件 DLL 名字 #else #define KERNEL_ENGINE_DLL_NAME TEXT("KernelEngineD.dll") //组件 DLL 名字 #endif ////////////////////////////////////////////////////////////////////////// //系统常量 //常量定义 #define TIME_CELL 200 //时间单元 #define TIMES_INFINITY DWORD(-1) //无限次数 #define MAX_ASYNCHRONISM_DATA 8192 //异步数据 ////////////////////////////////////////////////////////////////////////// //网络定义 //连接错误 #define CONNECT_SUCCESS 0 //连接成功 #define CONNECT_FAILURE 1 //连接失败 #define CONNECT_EXCEPTION 2 //参数异常 //关闭原因 #define SHUT_REASON_INSIDE 0 //内部原因 #define SHUT_REASON_NORMAL 1 //正常关闭 #define SHUT_REASON_REMOTE 2 //远程关闭 #define SHUT_REASON_TIME_OUT 3 //网络超时

64,637

社区成员

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

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