关于ReadFile函数的参数问题

RobinVanship 2007-04-27 10:08:42
DWORD dwbuff;
ReadFile(hf,(LPSTR)&bf,sizeof(BITMAPFILEHEADER),&dwbuff,NULL);
就算初始化dwbuff为零,还是会报错。
error C2664: 'ReadFile' : cannot convert parameter 1 from 'int' to 'void *'

可是我在另外一个工程里面却能正常运行一点问题也没有。实在奇怪,请高手指点下。
...全文
1062 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wltg2001 2007-04-27
  • 打赏
  • 举报
回复
第一个参数错了,它应该是一个HANDLE型的,你估计用int型了。
fulingwei 2007-04-27
  • 打赏
  • 举报
回复
问题出在第一个参数上,hf ->'int'
RobinVanship 2007-04-27
  • 打赏
  • 举报
回复
嗯 ,对,把hf改为HANDLE就可以了。
我用这段程序是WIN16的。里面很多过时的函数,我正一点点地把它们改回来
菜牛 2007-04-27
  • 打赏
  • 举报
回复
HFILE != HANDLE


#ifndef _MAC
typedef int HFILE;
typedef HICON HCURSOR; /* HICONs & HCURSORs are polymorphic */
#else
typedef short HFILE;
DECLARE_HANDLE(HCURSOR); /* HICONs & HCURSORs are not polymorphic */
#endif


#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
wltg2001 2007-04-27
  • 打赏
  • 举报
回复
我查了一下MSDN,HFILE好像是对OpenFile这个过时的16位API而用的。
wltg2001 2007-04-27
  • 打赏
  • 举报
回复
你改成HANDLE试试
RobinVanship 2007-04-27
  • 打赏
  • 举报
回复
HFILE hf;
我没有用int型。而且在另外一个工程里面就是完全一模一样的程序,可以正常编译不报错,为什么

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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