ReadFile使用问题~~求解
- C/C++ code
int Load_Lrc(WCHAR *lrc_name){ WCHAR Lrc_WidePath[MAX_PATH]={L"E:\\MyLrc\\"}; HANDLE Lrc_Opened=NULL; DWORD File_Size=0; int name_length=0; void *Lrc_Context=NULL; name_length=wcslen(lrc_name); for(int i=1;i<=4;i++) *(lrc_name+name_length-i)=L'\0'; wcscat_s(Lrc_WidePath,MAX_PATH,lrc_name); wcscat_s(Lrc_WidePath,MAX_PATH,L".lrc"); Lrc_Opened=CreateFile(Lrc_WidePath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL); error=GetLastError(); if(Lrc_Opened==NULL) //文件不存在 return 0; File_Size=GetFileSize(Lrc_Opened,0); Lrc_Context=malloc(File_Size); error=GetLastError(); if(Lrc_Context==NULL) return 0; ReadFile(Lrc_Opened,&Lrc_Context,File_Size-1,NULL,NULL); if(*(char *)Lrc_Context==0) return 0; CloseHandle(Lrc_Opened); return 1;}执行到ReadFile时提示
MyPlayer.exe 中的 0x7565e454 处最可能的异常: 0xC0000005: 写入位置 0x00000000 时发生访问冲突
MyPlayer.exe 中的 0x77297094 处未处理的异常: 0xC0000005: Access violation
求解,为啥冲突了
[解决办法]
if(Lrc_Opened==INVALIDEHANDLE) // =-1 文件不存在
return 0;
[解决办法]
MyPlayer.exe 中的 0x7565e454 处最可能的异常: 0xC0000005: 写入位置 0x00000000 时发生访问冲突
------
空指针异常,应该是哪个函数返回的指针或者句柄为NULL或者INVALID_HANDLE_VALUE了
你Debug下调试一下看看~
[解决办法]
ReadFile(Lrc_Opened,&Lrc_Context,File_Size-1,NULL,NULL);
[解决办法]
ReadFile(Lrc_Opened,&Lrc_Context,File_Size-1,NULL,NULL);
&Lrc_Context ??
Lrc_Context