DWORD              dwbuff;
ReadFile(hf,(LPSTR)&bf,sizeof(BITMAPFILEHEADER),&dwbuff,NULL);
就算初始化dwbuff为零,还是会报错。
error C2664: 'ReadFile' : cannot convert parameter 1 from 'int' to 'void *'可是我在另外一个工程里面却能正常运行一点问题也没有。实在奇怪,请高手指点下。

解决方案 »

  1.   

    问题出在第一个参数上,hf ->'int'
      

  2.   

    第一个参数错了,它应该是一个HANDLE型的,你估计用int型了。
      

  3.   

    HFILE hf;
    我没有用int型。而且在另外一个工程里面就是完全一模一样的程序,可以正常编译不报错,为什么
      

  4.   

    我查了一下MSDN,HFILE好像是对OpenFile这个过时的16位API而用的。
      

  5.   

    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
      

  6.   

    嗯 ,对,把hf改为HANDLE就可以了。
    我用这段程序是WIN16的。里面很多过时的函数,我正一点点地把它们改回来