以下是一段MFC的CFILE的代码 :
unsigned char *pFileBuf, *ptrFile;
int nFileLen;CFile fp;
if(!fp.Open(strFileName, CFile::modeRead|CFile::typeBinary))
{
  return;
}nFileLen = (int) fp.GetLength();
pFileBuf = new unsigned char[nFileLen];
memset(pFileBuf, 0, nFileLen);
fp.Read(pFileBuf, nFileLen);
ptrFile = pFileBuf;
fp.Close();

如果我想把他转为C的FILE作打开档案,
FILE *fp;
fp=fopen(strFileName, "rb"); 
if(fp==NULL)
{
return ;
}
之后又如何??

解决方案 »

  1.   

    unsigned char *pFileBuf, *ptrFile;
    int nFileLen;
    nFileLen = filelength(fp);
    pFileBuf = new unsigned char[nFileLen];
    memset(pFileBuf, 0, nFileLen);
    fread(pFileBuf, nFileLen,1,fp);
    ptrFile = pFileBuf;
    fclose(fp);
      

  2.   

    filelength出现以下的错误已包括了io.herror C2664: 'filelength' : cannot convert parameter 1 from 'struct _iobuf *' to 'int'
    conversion requires a reinterpret_cast, a C-style cast or function-style cast