|
- CString strFilePath = _T("\\硬盘\\AccountFile.dll");
- HANDLE m_hAccountFile = CreateFile(strFilePath,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,
- OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN,NULL);
- if (INVALID_HANDLE_VALUE == m_hAccountFile)
- {
- m_strLastError.Format(_T("账户文件打开失败,错误信息:%d"),GetLastError());
- AfxMessageBox(m_strLastError);
- return ;
- }
- AccountInfomation sAI;//声明一个结构体
- DWORD dwAISize = sizeof(AccountInfomation);
- DWORD dwNumberOfBytesRead = 0;
- BOOL bRet = FALSE;
- while (TRUE)
- {
- memset(&sAI,0,dwAISize);
- bRet = ReadFile(m_hAccountFile,(LPVOID)&sAI,dwAISize,&dwNumberOfBytesRead,NULL);
- if (!bRet || (dwNumberOfBytesRead!=0 && dwNumberOfBytesRead!=dwAISize))
- {
- m_strLastError.Format(_T("读取账户信息错误,错误信息:%d"),GetLastError());
- AfxMessageBox(m_strLastError);
-
- CloseHandle(m_hAccountFile);
- return ;
- }
-
- if (dwNumberOfBytesRead == 0)
- return;
- if (sAI.nFlag == 1)
- return ;
- }
- CloseHandle(m_hAccountFile);
复制代码
从一个文件中读取数据,为什么dwNumberOfBytesRead返回值老是0呢,但是bRet为1.
想从文件中读取一个结构体的大小的数据,为什么老是读不出来?
|
|