CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

程序段运行后,编译器提示"对一未命名文件的存取被拒绝"请问错误出再那里?

楼主leonhome(腐烂生存)2005-12-25 16:49:35 在 VC/MFC / 基础类 提问

程序如下  
  void   CMainFrame::OnMenuDisplay()    
  {  
  CClientDC   dc(this);  
   
  CFile   cFileBmp;  
  CFile   cFileDet;  
  BYTE   ch,Y;  
  long   nNs_Y[256]={0};  
  long   i;  
  BITMAPFILEHEADER   stBmpFileHead;  
  BITMAPINFOHEADER   stBmpInfoHead;  
  RGBQU   stRgb;  
  CString   sStr;  
   
  if   (!cFileBmp.Open("e:\\细菌.bmp",CFile::modeReadWrite   |   CFile::typeBinary)){  
  AfxMessageBox("图像文件打开错误!");  
  return   ;  
  }  
   
  if   (!cFileBmp.Open("e:\\结果.bmp",CFile::modeCreate   |   CFile::modeWrite   |   CFile::typeBinary)){  
  AfxMessageBox("目的文件打开错误!");  
  return   ;  
  }  
  //读文件头  
  cFileBmp.SeekToBegin();  
   
  cFileBmp.Read(&stBmpFileHead,sizeof(BITMAPFILEHEADER));     //单步执行时错误出现在这里  
  cFileBmp.Read(&stBmpInfoHead,sizeof(BITMAPINFOHEADER));  
   
  //统计灰度   Y=0.299*R+0.587*G+0.114*B  
  i=0x36;  
  while   (i<stBmpInfoHead.biHeight*stBmpInfoHead.biWidth){  
  cFileBmp.Read(&stRgb,sizeof(RGBQU));  
  Y=0.299*stRgb.Red+0.587*stRgb.Green+0.114*stRgb.Blue;  
  nNs_Y[Y]++;  
  i++;  
  }  
  for   (i=0;i<256;i++){  
  nNs_Y[i]/=(stBmpInfoHead.biHeight*stBmpInfoHead.biWidth);  
  sStr.Format("%d",nNs_Y[i]);  
  AfxMessageBox(sStr);  
  }  
  cFileDet.Close();  
  cFileBmp.Close();  
  }  
  问题点数:100、回复次数:5Top

1 楼laiyiling(陌生人[MVP])回复于 2005-12-25 17:25:34 得分 20

2个地方用的都是cFileBmp.Open,第二个是不是应该用cFileDet.OpenTop

2 楼laiyiling(陌生人[MVP])回复于 2005-12-25 17:26:42 得分 20

你这样用cFileBmp是空的,所以不能读书据。Top

3 楼Mackz(在相互)回复于 2005-12-25 17:40:52 得分 20

应该是运行错误吧,好象你重复打开文件了。  
   
  if   (!cFileBmp.Open("e:\\细菌.bmp",CFile::modeReadWrite   |   CFile::typeBinary)){  
  AfxMessageBox("图像文件打开错误!");  
  return   ;  
  }  
   
  if   (!cFileBmp.Open("e:\\结果.bmp",CFile::modeCreate   |   CFile::modeWrite   |   CFile::typeBinary)){  
  AfxMessageBox("目的文件打开错误!");  
  return   ;  
  }  
  Top

4 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2005-12-25 20:16:22 得分 20

cFileBmp打开两次?第二个应该是cFileDet吧。Top

5 楼xuzheng318(忧郁王子)回复于 2005-12-25 22:34:00 得分 20

if   (!cFileBmp.Open("e:\\细菌.bmp",CFile::modeReadWrite   |   CFile::typeBinary)){  
  AfxMessageBox("图像文件打开错误!");  
  return   ;  
  }  
   
  if   (!cFileDet.Open("e:\\结果.bmp",CFile::modeCreate   |   CFile::modeWrite   |   CFile::typeBinary)){  
  AfxMessageBox("目的文件打开错误!");  
  return   ;  
  }Top

相关问题

  • 程序段运行后,编译器提示"对一未命名文件的存取被拒绝"请问错误出再那里?
  • 为什么编译器提示:unexpected end of file while looking for precompiled header directive
  • 继承自CRecordSet 的类,编译器为何提示出错?
  • 紧急求助,关于vc编译器提示问题
  • 紧急求助,关于vc编译器提示问题
  • keil c 编译器的错误提示“unterminated conditionals”
  • 关于VC++6.0编译器运算符“.”“->”“::”提示列表的问题
  • MIB编译器!
  • java编译器
  • java编译器

关键词

  • 文件
  • cfilebmp
  • cfile
  • 错误

得分解答快速导航

  • 帖主:leonhome
  • laiyiling
  • laiyiling
  • Mackz
  • DentistryDoctor
  • xuzheng318

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo