Problem mit HWND



  • Hallo,
    hab da ein kleines Problem...bei dieser Zeile:

    HWND hwndWinamp = FindWindow("Winamp v1.x",NULL);
    

    erhalte ich folgenden Fehler:

    error C2440: 'initializing' : cannot convert from 'class CWnd *' to 'struct HWND__ *'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    

    Habe leider nicht so super ahnung von C++ und daher vielleicht für euch nen ganz einfaches Problem. Ichweiß auf jedenfall dass der Code genau so schonmal bei mir funktioniert hat 🙂

    Gruß
    Dingeling



  • HWND hWnd = ::FindWindow("Winamp v1.x", NULL);
    

  • Mod

    @Dingeling:
    Fast alle Win32API Fenster Funktionen haben einen Wrapper (Hülle) bekommen, die die entsprechenden MFC Objekte returnieren. Du versuchst nun die Win32 API Funktion aufzurufen innerhalb einer CWnd Klasse, das führt dazu dass die CWnd::FindWindow Funktion verwendet wird.
    Deshalb musst Du (wie q9328u es schrieb) den Scope Operator voranstellen.
    Allerdings könntest Du genauso mit dem CWnd Zeiger arbeiten...



  • Jetzt funktionierts! Ich danke Euch!!
    Und nun kommt der nächste Fehler 😞

    SendMessage(hwndWinamp,WM_USER, NULL, 101);
    
    error C2660: 'SendMessageA' : function does not take 4 parameters
    

    also wenn ich das richtig versteh nimmt die Funktion kene 4 Parameter, aber laut MSDN müsste die Funktion 4 nehmen.

    Gruß
    Dingeling



  • OK, hat sich schon erledigt, hab einfach auch 2 Doppelpunkte davorgemacht

    ::SendMessage (hwndWinamp,WM_USER, NULL, 101);
    

    Hab zwar immernoch keine Ahnung was das bringt, aber es geht ^^



  • Wie dir Martin Richter schon erläutert hat gibt es sozusagen zwei verschiedene Funktionen von FindWindow() bzw. SendMessage().
    Damit also der Compiler kapiert, dass du die HWND Variante meinst, musst du eventuell den Scope Operator voranstellen, um den Bezugsrahmen noch einmal explizit anzugeben. Das ist natürlich auch bei vielen weiteren Funktionen der Fall.


  • Mod

    Dingeling schrieb:

    Hab zwar immernoch keine Ahnung was das bringt, aber es geht ^^

    Was hälst DU davon einfach mal eine Dokumentation oder ein Buch über C++ zu lesen? MFC kann auch nicht schaden... :xmas1:


Anmelden zum Antworten