首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

ReadFile使用有关问题~求解

2012-09-10 
ReadFile使用问题~~求解C/C++ codeint Load_Lrc(WCHAR *lrc_name){WCHAR Lrc_WidePath[MAX_PATH]{LE:\\M

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

热点排行