Da stimmt was nicht MFC und virtuelle Funktionen



  • Hallo,
    ich hab mal versucht, einen MFC-Dialog von CDialog und einer stinknormalen C++ Klasse ohne irgendwelches MFC abzuleiten, also so:

    CMyDialog : public CClass, public CDialog
    

    Mein Problem: jedes mal beim Laden gabs nen Fehler: Acess Violation.
    Nachdem ich alle virtuellen Methoden (einschließlich des Destruktors) entfernt hatte gings wieder. 😡

    Wieso funktionieren die virtuellen Funktionen nicht 😕
    Ich bräuchte sie nämlich dringend



  • Bei so wenig Informationen bleibt die Kristallkugel schwarz....



  • Mach es umgekehrt: Erst von CDialog ableiten, dann von einer anderen Klasse (die selbst keine Fensterklasse sein darf). Das hat mit der Art zu tun, wie die Message-Maps in MFC aufgebaut sind...



  • Danke erstmals!
    @Knuddlbaer:
    Unter http://mitglied.lycos.de/xcooperation/download/ hab ich jetzt mein Projekt unter trayicon.zip abgespeichert. Siehs dir an...
    Die Klasse verwaltet ein TrayIcon. Anzeigen verbergen usw. funktioniert, nur bei der Nachrichtenbehandlung stimmt was nicht:
    Oben in TrayIcon.h hab ich ein Makro WM_TRAYICON definiert, die die Funktion
    OnTrayMesseage(WPARAM wParam,LPARAM lParam) aufruft. Das schaut dann nach, welche Mausnachricht das ist und ruft in der abgeleiteten Klasse (->virtual)
    die entsprechende Methode auf. Leider funktionierts nicht ->Siehe unten

    @tag:
    Danke für die
    Hilfe,jetzt bin ich immerhin einen kleinen Schritt weiter.(Schau dir bitte mal die Klasse an, die Adresse und Anleitung steht oben steht oben)
    Aber jetzt bekomme ich folgenden Fehler, wenn ich mit meiner Maus über das TrayIcon gehe(und die virtuelle Funktion aufrufe: 😡
    Debug error!
    File: i386/chkesp.c
    Line:42The Value of ESP was not properly saved across a function call.


Anmelden zum Antworten