E:\vc\Application\BrowseFile\FileInfo.cpp(85) : error C2440: '=' : cannot convert from 'int (__stdcall CFileInfo::*)(struct HWND__ *,unsigned int,long,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,long,long)'
        There is no context in which this conversion is possible声明:
public:
int WINAPI BrowseCtrlCallback(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData);
定义:
int WINAPI CFileInfo::BrowseCtrlCallback(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData)
{...}
使用:
//设定回调函数入口
bInfo.lpfn=BrowseCtrlCallback;谢谢!

解决方案 »

  1.   

    声明:
    public:
    int WINAPI BrowseCtrlCallback(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData);
    定义:
    int WINAPI BrowseCtrlCallback(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData)
    {...}
      

  2.   

    这样试试看
    bInfo.lpfn=CFileInfo::BrowseCtrlCallback;
      

  3.   

    把回调函数声明为静态成员函数(《深入浅出》的做法):
    public:
    static int WINAPI BrowseCtrlCallback(HWND hwnd,UINT uMsg,LPARAM lParam,LPARAM lpData);
      

  4.   

    类型转换错误,全局函数向类内函数转换错误
    bInfo.lpfn=CFileInfo::BrowseCtrlCallback;
      

  5.   

    谢谢各位。你们说的我都试过了。
    ruihuahan(飞不起来的笨鸟) 的做法解决了这个问题,另外的两种做法还是会出现以上提示的错误。不知怎么回事,按说你们说的也有道理。
    结帖。