error C2440: '=' : cannot convert from 'unsigned int (__stdcall *)(struct HWND__ *,unsigned int,struct _PROPSHEETPAGEA *)' to 'int (__stdcall *)(struct HWND__ *,unsigned in
t,unsigned int,long)'怎么老是返回以上错误呢?一下那个对呢?UINT CALLBACK PropSheetPage_1Proc(HWND,UINT,LPPROPSHEETPAGE);
INT_PTR CALLBACK DialogProc_1( HWND ,UINT,WPARAM ,LPARAM);typedef struct _PROPSHEETPAGE {
    DWORD dwSize;
    DWORD dwFlags;
    HINSTANCE hInstance;
    union {
        LPCSTR pszTemplate;
        LPCDLGTEMPLATE pResource;
        };
    union {
        HICON hIcon;
        LPCSTR pszIcon;
        };
    LPCSTR pszTitle;
    DLGPROC pfnDlgProc;            //这个函数应该定义上面的哪个函数呢?第一次用第二个 对了,第二次 就不行了。
    LPARAM lParam;
    LPFNPSPCALLBACK pfnCallback;
    UINT FAR * pcRefParent;#if (_WIN32_IE >= 0x0400)
    LPCTSTR pszHeaderTitle;
    LPCTSTR pszHeaderSubTitle;
#endif
} PROPSHEETPAGE, FAR *LPPROPSHEETPAGE;

解决方案 »

  1.   

    INT_PTR CALLBACK DialogProc( HWND, UINT,WPARAM ,LPARAM );
      

  2.   

    对啊,我上次用的就是第二个。没有问题。为了规范一下我的工程,我重新写了一遍。加了一些头函数。就出现错误了。
    error C2440: '=' : cannot convert from 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' to 'int (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,
    long)'
            This conversion requires a reinterpret_cast, a C-style cast or function-style cast
    Error executing cl.exe.不能将long转变成int。感觉是第二句的错误。难道是头函数声明的有问题?
      

  3.   

    INT CALLBACK DialogProc_1( HWND ,UINT,WPARAM ,LPARAM); 用这个再试试.