std::ifstream ifs 读取dib文件头信息

tan625747 2010-03-14 07:47:13
ifstream ifs(lpszFileName);

DWORD dwFileSize;

//dwFileSize= ifs.GetLength();// 获取文件大小
BITMAPFILEHEADER bmfHeader;
if (ifs.read ((LPSTR)&bmfHeader, sizeof(bmfHeader)) != sizeof(bmfHeader))// 读取DIB文件头 //出错
{
return NULL;// 大小不一致,返回NULL。
}


Error 1 error C2679: binary '!=' : no operator found which takes a right-hand operand of type 'unsigned int' (or there is no acceptable conversion)


求高手解答,在线等
...全文
169 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
macrojj 2010-03-14
  • 打赏
  • 举报
回复
呵呵 ifstream 不是FILE*
fread返回的才是个数。
白云飘飘飘 2010-03-14
  • 打赏
  • 举报
回复
if (ifs.read ((LPSTR)&bmfHeader, sizeof(bmfHeader)).fail());读取DIB文件头 //出错
{
return NULL;// 大小不一致,返回NULL。
}
arong1234 2010-03-14
  • 打赏
  • 举报
回复
说明istream::read返回的不是所读的字节数目,我记得它返回istream&的,所以不能用这种方法判断,我估计楼主是用api read的方法来使用ifstream,这可不行

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧