自己用的,存储代码

void Game::loadCtx()
{
 IFileMgr* pSaveFileMgr;
 IFile*  pSaveFile;
 bool  b = FALSE;
 
 uint32 SAVE_SIZE = (uint32)(sizeof(JAVABYTE)*SIZE_MAP);
 //file
 if(ISHELL_CreateInstance(app_ptr->getShell(), AEECLSID_FILEMGR , (void**)&pSaveFileMgr) == SUCCESS)
 {
  //wa
  pSaveFile = IFILEMGR_OpenFile(pSaveFileMgr, "aoesaves.dat", _OFM_READ);
//primal
//  if(pSaveFile != NULL)
//  {
//   if(IFILE_Read(pSaveFile, context, sizeof(JAVABYTE)*SIZE) == sizeof(JAVABYTE)*SIZE)
//   {
//    b = TRUE;
//   }
//   IFILE_Release(pSaveFile);
//   pSaveFile = NULL;
///  }
//add for ramdom map error at 20061023
  if (pSaveFile != NULL)
  {
//    if(IFILE_Read(pSaveFile, context, sizeof(JAVABYTE)*SIZE) == sizeof(JAVABYTE)*SIZE)
//    {   
//     IFILEMGR_Release(pSaveFileMgr);
//     pSaveFileMgr = NULL;
//     context[CONTEXT_OFFSET_PLAYTIMES] = 0; 
//     saveCtx();
//     return;
//    }
   context[CONTEXT_OFFSET_PLAYTIMES] = -1;
   uint32 num = 0;
   num = IFILE_Read(pSaveFile, context, SAVE_SIZE);
//   if(IFILE_Read(pSaveFile, context, SAVE_SIZE) == (int32)SAVE_SIZE)
//   if(IFILE_Read(pSaveFile, context, sizeof(JAVABYTE)*SIZE_MAP) == sizeof(JAVABYTE)*SIZE_MAP)
   if (num == SAVE_SIZE)
   {   

    // DBGPRINTF("______ERROR!------------------------------------");
//    b = FALSE;
    b = TRUE;
   IFILE_Release(pSaveFile);
   pSaveFile = NULL;
//    if (context[CONTEXT_OFFSET_PLAYTIMES] == 0)
//    {
//     b = FALSE;
//    }
//   }else if(IFILE_Read(pSaveFile, context, SIZE) == (int32)SIZE){
   }else if(num  == (int32)SIZE){
    if(context[CONTEXT_OFFSET_PLAYTIMES] == -1) 
     context[CONTEXT_OFFSET_PLAYTIMES] = 0;
//        b = TRUE;
    IFILE_Release(pSaveFile);
    pSaveFile = NULL;
   }
//   if(IFILE_Read(pSaveFile, context, sizeof(JAVABYTE)*SIZE_MAP) == sizeof(JAVABYTE)*SIZE_MAP)
//   {
//    b = TRUE;
//    DBGPRINTF("______ok!------------------------------------");
//    int c = context[CONTEXT_OFFSET_PLAYTIMES];
//   }else{
//    if(IFILE_Read(pSaveFile, context, sizeof(JAVABYTE)*SIZE) == sizeof(JAVABYTE)*SIZE)
//    {   
//     context[CONTEXT_OFFSET_PLAYTIMES] = 0;
//     DBGPRINTF("______ERROR!------------------------------------");
//    }
//   }
   
  }
//end
 }
 // 
 IFILEMGR_Release(pSaveFileMgr);
 pSaveFileMgr = NULL;

 // df   
 if( b == FALSE ){
  // 
  saveCtx();
 }

}

原文地址:https://www.cnblogs.com/secbook/p/2655509.html