Funktionszeiger auf WndProc



  • Ich habe ein Problem mit einem Funktionszeiger auf eine WndProc!
    Hier mein Code:

    //header.hpp
    typedef LRESULT CALLBACK (*WndFunc) (HWND, UINT, WPARAM, LPARAM);
    
    BOOL CreateGLWindow(WndFunc WndProc);
    
    //main.cpp
    LRESULT CALLBACK WndProc(   HWND    hWnd,           // Handle For This Window
                                UINT    uMsg,           // Message For This Window
                                WPARAM  wParam,         // Additional Message Information
                                LPARAM  lParam)         // Additional Message Information
    
    {
        //...
    }
    int WINAPI WinMain( HINSTANCE   hInstance,          // Instance
                        HINSTANCE   hPrevInstance,      // Previous Instance
                        LPSTR       lpCmdLine,          // Command Line Parameters
                        int         nCmdShow)           // Window Show State
    {
        CreateGLWindow(WndProc);
        //...
    }
    

    So soll das ganze aussehen, leider meldet er mir in der obersten Zeile "error C2059: Syntaxfehler : '('", lasse ich das CALLBACK weg,
    kann ich zwar diese Zeile kompilieren, aber bei der Übergabe meldet er mir dann einen fehler:

    error C2664: 'CreateGLWindow' : Konvertierung des Parameters 6 von 'long (struct HWND__ *,unsigned int,unsigned int,long)' in 'long (__cdecl *)(struct HWND__ *,unsigned int,unsig
    ned int,long)' nicht moeglich

    Bin für jede Hilfe dankbar.



  • es gibt bereits einen solchen funktionszeiger und der heisst WNDPROC :p 🙄



  • typedef (LRESULT CALLBACK *WndFunc) (HWND, UINT, WPARAM, LPARAM);
    

    müsste glaub auch...



  • typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);



  • Original erstellt von <!>:
    es gibt bereits einen solchen funktionszeiger und der heisst WNDPROC :p 🙄

    Danke für die Hilfe, jetzt wird mir einiges klar ...



  • jetzt wird mir einiges klar ...

    Und was wäre das?



  • Mir wird klar, dass ich nicht wusste was WNDPROC ist...


Anmelden zum Antworten