我用VC写了个在实验数据中寻找需要的数值,每个实验文件中有2034个数据,其中波长和强度值一一对应。主要代码如下: void CFindPeakDlg::OnBegin() 

  // TODO: Add your control notification handler code here     CFileDialog openPre(true,"*.ROH",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, 
    "待处理文件(*.ROH)|*.ROH|所有文件(*.*)|*.*||"); 
    DWORD MAXFILE = 256000; //设置缓冲区, 
    openPre.m_ofn.nMaxFile = MAXFILE; 
    char* pc = new char[MAXFILE]; 
    openPre.m_ofn.lpstrFile = pc; 
    openPre.m_ofn.lpstrFile[0]=NULL;     int index1=0,x=0;//文件数量统计       if(openPre.DoModal()==IDOK) 

//启动EXCEL服务器,设置初始属性 
    _Application app; 
    Workbooks books; 
    _Workbook book; 
    Sheets sheets; 
    _Worksheet sheet; 
      Range range;  
    LPDISPATCH lpDisp; 
    COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);     //Create Excel server (start Excel) 
    if(!app.CreateDispatch("Excel.Application")) 

    AfxMessageBox("Can't start Excel server! "); 
    return; 

        app.SetVisible(TRUE); //set Excel visible 
        app.SetUserControl(TRUE); //user can operate Excel         books=app.GetWorkbooks(); 
        book=books.Add(covOptional); 
        sheets=book.GetSheets();                  
        sheet=sheets.GetItem(COleVariant((short)1)); 
        range.AttachDispatch(sheet.GetCells(),TRUE); POSITION posi= openPre.GetStartPosition(); 
CString sPath=""; m_Wavelength2=290.566;//定义需要寻找的数值的波长和通道; 
m_Slaver2=2; while (posi!= NULL) 

  sPath=openPre.GetNextPathName(posi);//每次循环都得到下一个文件路径 
            FILE *fd=fopen(sPath,"rb"); 
            float buf[2056]; 
            fread(buf,sizeof(buf[0]),2056,fd);//读取二进制文件,放到buf数组中   float xbuf[2034]; 
  float ybuf[2034]; 
  for (int j=0;j <2034;j++) 
  { 
            xbuf[j]=buf[1]+buf[2]*j+buf[3]*j*j+buf[4]*j*j*j+buf[5]*j*j*j*j;//算出波长xbuf;             ybuf[j]=buf[j+19];//与波长对应的强度值; 
    } 
  if (0!=m_Wavelength2) 
  { 
      if (m_Slaver2=2&&xbuf[1]>288&&xbuf[1] <292) 
      { 
for (int k=0;k <2034;k++) 

  if ( fabs(xbuf[k]-m_Wavelength2) < 0.001) //波长与给定的相等; 
  { 
      x=++index1; 
      range.SetItem(_variant_t((long)(x)),_variant_t((long)1),_variant_t(ybuf[k]));   
    break;//把数值输出到EXCEL,并且跳出FOR循环,寻找下一个文件; 
    } 
  } 

      } 

    } 

程序运行后,当寻找到64个文件时,程序就会出错。调试的时候,就会出现“Access Violation”.