speicher fehler

3Cyb3r

Erfahrenes Mitglied
Ich hab das gefühl das Prob ist so einfach ersichtlichdas ich es nicht erkenn.

ich hab ein zeiger der auf mein aktulles WindowsManager Objekt zeigt um
in einer statschen funktion andere Funktionen der Klasse aufrufen zu können.
Code:
static WindowsManager*   s_pManager;
KeyEvent		objKeyEvent;

das ruf ich in meiner statischen funktionauf:
Code:
s_pManager->objKeyEvent.setID( wParam );
der Fehler wird mir bei setID angezeigt.

Code:
class KeyEvent
{
public:
	KeyEvent(){}
    ~KeyEvent(){}

    char getRealKeyChar();
    int  getRealKeyID();

	char getKeyChar();
	int  getKeyID(); 
	void setID(int);

private:
    int m_id;
};

Code:
int  KeyEvent::getKeyID()  { return m_id; }
void KeyEvent::setID(int key){ m_id = key; }
genau so bekomm ichaucheinen speicherfehler wenn ich getkeyid aufrufe
 
Zuletzt bearbeitet:
Hallo,
sorry, aber meine Glaskugel ist gerade zur Reparatur!
Daher wären etwas mehr Infos schön :rolleyes:

In welcher Zeile kommt der Fehler?
Und poste bitte genaue Fehlermeldung!

Gruß
Klaus
 
Unbehandelte Ausnahme in EktoOrbs.exe 0xC0000005: Acces Violation

im debug modus wird nun in diese zeile gesprungen

Code:
void KeyEvent::setID(int key)	{ m_id = key;		}

genau die selbe Fehlermeldung bei
getId wenn ich diese schon festgesetz habe im code
hab das auch per Haltepunkte überprüft
das diese Zeile den Speicherfehler verursacht
 
Hi.

Vermutlich ist der this Zeiger ungültig.

Wo / wann initialisierst du denn die statische Objektinstanz?

Gibt es Stellen wo du diesen Zeiger dann wieder überschreibst? Im Destruktor vielleicht?

Warum verwendest du nicht das Singleton Muster?

Gruß
 
singleton muster?

Code:
WindowsManager* WindowsManager::s_pManager;

WindowsManager::WindowsManager (){ s_pManager = this; }
WindowsManager::~WindowsManager(){ s_pManager = NULL; }

ich lege auch vor der erstellung meines Fensters ein Objekt an.
und der Zeiger funktioniert auch bei anderen funktionen einwandfrei.
Bis auf die verwendung des Objekts objKeyEvent
 
Zurück