Hallo,
ich habe Probleme den Irrlicht Event Receiver zu implementieren. Folgendes habe ich versucht:
Code:
class MyEventReceiver : public IEventReceiver
{
public:
virtual bool OnEvent(const SEvent& event)
{
if (event.EventType == irr::EET_KEY_INPUT_EVENT)
KeyIsDown[event.KeyInput.Key] = event.KeyInput.PressedDown;
return false;
}
virtual bool IsKeyDown(EKEY_CODE keyCode) const
{
return KeyIsDown[keyCode];
}
MyEventReceiver()
{
for (u32 i=0; i<KEY_KEY_CODES_COUNT; ++i)
KeyIsDown[i] = false;
}
private:
bool KeyIsDown[KEY_KEY_CODES_COUNT];
};
[...]
//In der main
MyEventReceiver receiver;
device = createDevice( video::EDT_OPENGL, dimension2d<s32>(800, 600), 16, false, false, false,&receiver);
Sobald ich den receiver als Parameter der createDevice Funktion übergebe, erhalte ich folgenden Fehler:
Code:
Unhandled exception at 0x00537506 in demo.exe: 0xC0000005: Access violation reading location 0xccccccd0.
Der Fehler tritt an der folgenden Stelle auf:
Code:
while(device->run())
Die Irrlicht.lib und Include Dateien sind alle vorhanden und richtig eingebunden. Wenn ich den receiver rausnehme und mit 0 ersetzte funktioniert alles.
IDE: VS 2008 Express
System: Win XP SP2 (Bootcamp)
Hardware: Macbook
Ich wäre euch für einen hilfreichen Tipp sehr dankbar, da ich jetzt schon viel danach gesucht habe und den Fehler einfach nicht finde.
Danke!