BOOL CMultiFTP::Get(CString szRemotepath, CString szLocalpath)
{
 stThreadParam *pvar;
 
 CString szCommand;
 szCommand.Format("size %s",szRemotepath);
 if(DoCommand(szCommand)!=FTP_SIZEOK)
  return FALSE;
 szMsg.Delete(0,4);
 UINT uSize=atoi(szMsg),uAvgSize=uSize/nThreads,uStart=0;
 
 nThreadOvered=0;
 for(int i=1;i<=nThreads;i++)
 {
  pvar=new stThreadParam;
  pvar->ID =i;
  pvar->pFtp =this;
  pvar->szLocalname.Format("%s_%d.dat",szLocalpath,i); 
  pvar->szRemotename =szRemotepath;
  pvar->uStart =uStart;
  pvar->uLength =(i==nThreads)?uSize:uAvgSize;   uStart+=pvar->uLength ;
  uSize-=uAvgSize;
  AfxBeginThread(DownloadThread,pvar);
 }  szLocalname=szLocalpath;
 return TRUE;}UNIT DownloadThread(LPVOID pVoid)
{
 stThreadParam *pvar=(stThreadParam *)pVoid;
 int ID=pvar->ID ,nPort=pvar->nPort; 
 CString szLocalname=pvar->szLocalname,szRemotename=pvar->szRemotename;
 CString szHost=pvar->szHost ;
 CString szUsername=pvar->szUsername ,szPassword=pvar->szPassword ;
 UINT uStart=pvar->uStart ,uLength=pvar->uLength; 
 delete pvar;
 
 CString szMsg;
 CFile m_file;
 char *pBuffer;  m_file.Open(szLocalname,CFile::modeWrite|CFile::modeCreate);
 pBuffer=(char *)VirtualAlloc(NULL,uLength,MEM_RESERVE|MEM_COMMIT,PAGE_READWRITE);
 ASSERT(pBuffer);
 if(!pvar->pFtp->OpenFile                   /////////////出错(szRemotename,szLocalname,uStart,uLength))
 {
  m_file.Close();
  DeleteFile(szLocalname);
  VirtualFree(pBuffer,0,MEM_RELEASE);
  return 0;
 }  for(UINT uRead;uLength;uLength-=uRead)
 {
  uRead=pvar->pFtp->Read(pBuffer,uLength); 
  m_file.Write(pBuffer,uRead);
 }
 m_file.Close();
 VirtualFree(pBuffer,0,MEM_RELEASE);
 
 gcs_multiftp.Lock();
 pvar->pFtp->OnThreadOver(ID,0,"ok");
 gcs_multiftp.Unlock();
 
 return 0;
} OpenFile是类CMultiFTP的成员函数,每次执行到OpenFile就弹出对话框:unhandled exception in......什么问题,如何解决啊?