ZUGRIFFSVERWEIGERUNG bei Aufruf virtueller Funktionen



  • Hallo zusammen,

    ich habe einen Code in folgender Form:

    [cpp]#include "stdafx.h"
    
    MCApplication app;
    MCFrame frmMain;
    MCButton cmdTest;
    
    class EHCmdTest : public MCEventHandler
    {
    public:
        RESULT onClick()
        {
            info.window->InfoBox("Clicked the Button!", "Click");
            return 0;
        }
        RESULT onUnknownMessage()
        {
            return MessageBox(info.hWnd, "Button unknown", "", NULL);
        }
    } cmdTestHandler;
    
    class EHfrmMain : public MCEventHandler
    {
    } frmMainHandler;
    
    int main(int argc, char* argv[])
    {
    
        app.add(&frmMain);
        frmMain.add(&cmdTest);
    
        frmMain.eventHandlerSet(&frmMainHandler);
        frmMain.textSet("Mein Testprogramm");
    
        [b]cmdTest.eventHandlerSet(&cmdTestHandler);[/b]
        cmdTest.textSet("Start");
        cmdTest.positionSet(50, 50);
    
        app.run();
    }
    [/cpp]
    

    Jetzt habe ich dann irgendwo in der Basisklasse von MCButton (die heißt bei mir dann MCWindow) den Aufruf:

    [cpp]
    this->eventHandler->onClick();[/cpp]
    

    wobei eventHandler ein Zeiger auf MCEventHandler ist, der durch eventHandlerSet gesetzt wird.

    Der onClick-Aufruf scheitert aber und ich bekomme eine Zugriffsverletzung.
    Was mache ich da falsch???

    Viele Grüße,

    Matthias



  • Zeig mal eventHandlerSet()


Anmelden zum Antworten