// CFile file;
// if(!file.Open(szFilePath, CFile::modeRead | CFile::typeBinary))
// {
// AfxMessageBox(_T("打开bin文件失败!"));
// return FALSE;
// }
//
// file.SeekToEnd();
// m_nFileLength = (unsigned long)file.GetLength();
// m_pSzBinData = new unsigned char[m_nFileLength];
// file.SeekToBegin();
//
// if (file.Read(m_pSzBinData, m_nFileLength) != m_nFileLength)
// {
// m_nFileLength = 0;
//
// delete[] m_pSzBinData;
// m_pSzBinData = NULL;
//
// file.Close();
// AfxMessageBox(_T("读取bin文件数据失败!"));
// return FALSE;
// }
//
// file.Close();
在上述代码中,m_pSzBinData定义是unsigned char *, file.Read时,只能读取文件中的第一个字节,后面的内容读取不到.
但是当m_pSzBinData改为unsigned char m_pSzBinData[ ]时,读取内容是完整的.
不知道这是为什么?能有大神留言解答吗?
//2016.07.21日更新
读取没有出错,但是在断点时使用指针时只能看到第一个字节的内容.而数组区可以看到整个数组的内容.
指针*,数组[ ]都指向数据首地址,但是[ ]指向的地址指针变量地址本身的后面