各位,我在用API函数READFILE时,系统返回的错误号是998,上MSDN一查,为Invalid access to memory location.  ERROR_NOACCESS ,不知如何解决?我的调用程序是ReadFile(hFile,rdBuffer,dwFileSize+1,&dwBytesRead,NULL);对应数据类型为(HANDLE,LPVOID,DWORD,LPDWORD,NULL)。

解决方案 »

  1.   

    to:  DeautyFan(悲情浪子)我的句柄是在前两句的代码里刚刚生成的,在之前并没有产生,具体如下://打开当前文件
    hFile = CreateFile(chEncryptFileName,GENERIC_READ|GENERIC_WRITE,0,NULL,
      OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);//读取文件内容
    dwFileSize = GetFileSize(hFile, NULL);status=ReadFile(hFile,rdBuffer,dwFileSize+1,&dwBytesRead,NULL);
      

  2.   

    估计是你下面这句话有问题的啊:
    status=ReadFile(hFile,rdBuffer,dwFileSize+1,&dwBytesRead,NULL);你先注销这句话,看是不是这句话的问题。如果是的话,你自己再考虑是怎么回事吧。如果不是这句话的问题,那么你再把它上面的语句一句一句的注销,然后你就知道是哪一句话产生的问题了。
      

  3.   

    rdBuffe分配的长度大于等于dwFileSize+1吗?另外hFile的有效性没有验证。