Fehler EnumWindows Parameter 1



  • Hallo!
    Wenn ich eine member funktion an enumWindows übergeben, bekomme ich immer nur einen error:
    "EnumWindows' : Konvertierung des Parameters 1 von 'int (struct HWND__ *,long)' in 'int (__stdcall *)(struct HWND__ *,long)' nicht moeglich
    Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp ueberein"
    hat das was mit der MessageMap zutun?



  • hat das was mit der MessageMap zutun?

    Nein

    -> Keine Übergabe von Memberfunktionen möglich!



  • hm, aber wenn ich eine systay icon erstelle, über gebe ich doch auch eine memberfunktion als callback funktion



  • Original erstellt von <CS01>:
    hm, aber wenn ich eine systay icon erstelle, über gebe ich doch auch eine memberfunktion als callback funktion

    Ich glaube nicht, du übergibts ein Fenster-Handle und eine User-Defined Message, die du in der WndProc handels.
    Wenn das auch anders geht, poste das mal, wäre gut zu wissen.

    Bei der Callback Funktion von EnumWindows kannst du ja den lParam frei belegen, pack dir doch ein Pointer zu deiner Klasse drauf.

    Gruß mathi



  • Hallo,

    wenn eine Methode (Member-Funktion) an eine API-Funktion als Callback übergeben werden soll, dann MUSS diese Methode "static" sein! Auch wird lt. Fehlermeldung hier die Aufrufkonvention "__stdcall" verlangt. Wenn dieses NICHT die Voreinstellung ist, sollte man es explizit dazuschreiben:

    class A
    {
        static int __stdcall MyCB(HWND* phwnd, long l);
    };
    

    Gruß,
    Andreas


Anmelden zum Antworten