Aktuelle Zeit: 22.12.2024, 15:49

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 13.01.2009, 21:48 
Offline

Registriert: 21.12.2008, 16:13
Beiträge: 15
Hallo,

Zitat:
Eine Ausnahme (erste Chance) bei 0x1010af46 in Merlin.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xccccccd0.
Unbehandelte Ausnahme bei 0x1010af46 in Merlin.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xccccccd0.


kommt beim debuggen raus in der zeile mit dem "return"

Code:
bool Game::IsRun(){
   return device->run();
}


vll weiß einer weiter achja das ganze ruf ich wie man unschwer an Game:: erkennen kann in einer klasse auf!

Und device ist auch unter public: :/

Schonmal danke im vorraus

mfg
FleX


Nach oben
 Profil  
 
BeitragVerfasst: 13.01.2009, 22:09 
Offline
Benutzeravatar

Registriert: 11.01.2009, 19:31
Beiträge: 18
Wohnort: ffm
argh. falsch verstanden beim ersten post -.-
also.
das "device" ist in dem fall ein nullzeiger. d.h. du hast es nicht richtig übergeben oder es ist einfach n C++ fehler, ich hatte das auch schon, passiert besonders, wenn das device noch nicht richtig steht, oder ganz speziell kam der fehler (bei mir war der smgr immer der nullzeiger), wenn ich die engine im konstruktor (auch per funktionsaufruf) "createDevice(...)" gemacht habe und die zeiger da erstellt hab....
ansonsten die funktion mal so machen:
Code:
bool Game::IsRun(void)
{
if(!device)
    exit(-666);
else
    device->run();
};

machen, um zu schauen obs wirklich ein nullzeiger im device ist, oder irgendwo in der funktion crashed...
ausserdem würde ich generell nicht device->run() nehmen, da passiert glaub ich ne ganze menge in der funktion, unter anderem wird der timer aktualisiert, was zu problemen führen kann, wenn du die funkltion an der falschen stelle aufrufst.
(n bool bei private in der klasse, ob die engine läuft, ist besser !)


Nach oben
 Profil  
 
BeitragVerfasst: 13.01.2009, 22:18 
Offline

Registriert: 21.12.2008, 16:13
Beiträge: 15
naja also man macht ja auch "while(device->run()){" und ich hab in meiner gameklasse das ich dan "while(game->IsRun()){" aufrufe naja bislang ist alles noch leer sollte nur paar boxen malen ( 2d )

:/

könnte es daran liegen da ich bei dem setzen von gamestate den timer stoppe :/ naja mal sehn

melde mich wieder wenns nicht geht auch wenns geht meld ich mich ^^

- - - -- - - - - -... - - - -- -... -----

psychophoniac hat geschrieben:
argh. falsch verstanden beim ersten post -.-
also.
das "device" ist in dem fall ein nullzeiger. d.h. du hast es nicht richtig übergeben oder es ist einfach n C++ fehler, ich hatte das auch schon, passiert besonders, wenn das device noch nicht richtig steht, oder ganz speziell kam der fehler (bei mir war der smgr immer der nullzeiger), wenn ich die engine im konstruktor (auch per funktionsaufruf) "createDevice(...)" gemacht habe und die zeiger da erstellt hab....
ansonsten die funktion mal so machen:
Code:
bool Game::IsRun(void)
{
if(!device)
    exit(-666);
else
    device->run();
};

machen, um zu schauen obs wirklich ein nullzeiger im device ist, oder irgendwo in der funktion crashed...
ausserdem würde ich generell nicht device->run() nehmen, da passiert glaub ich ne ganze menge in der funktion, unter anderem wird der timer aktualisiert, was zu problemen führen kann, wenn du die funkltion an der falschen stelle aufrufst.
(n bool bei private in der klasse, ob die engine läuft, ist besser !)


naja also das geht immer noch nicht crasht immer bei device->run();


Nach oben
 Profil  
 
BeitragVerfasst: 14.01.2009, 07:59 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Welchen Wert hat den device ?
Oder bzw. was sagt der CallStack?

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
BeitragVerfasst: 14.01.2009, 14:08 
Offline

Registriert: 21.12.2008, 16:13
Beiträge: 15
also device hat den wer 0x00793728 laut debugger wie bekomme ich den callstack in MSVC++?

mfg FleX


Nach oben
 Profil  
 
BeitragVerfasst: 14.01.2009, 14:14 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Ok das device sieht gültig aus.

Wie die bezeichnung in der Deutschen Version ist weiß ich nicht, aber in der Englischen gibts ein Tab "Call Stack" neben Breakpoints und Output wenn der Debugger läuft:
Bild

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
BeitragVerfasst: 14.01.2009, 14:19 
Offline

Registriert: 21.12.2008, 16:13
Beiträge: 15
Ahh ok habs gefunden

Code:
   Irrlicht.dll!1010af46()    
   [Unten angegebene Rahmen sind möglicherweise nicht korrekt und/oder fehlen, keine Symbole geladen für Irrlicht.dll]   
   Irrlicht.dll!1010b6f3()    
   user32.dll!76acb3b1()    
   user32.dll!76ac986e()    
   msctf.dll!764d69f8()    
   user32.dll!76acb282()    
   user32.dll!76acb35a()    
   user32.dll!76acb303()    
   user32.dll!76acb989()    
   user32.dll!76ac4160()    
   Irrlicht.dll!1010c143()    
>   Merlin.exe!Game::IsRun()  Zeile 45 + 0x16 Bytes   C++
   Merlin.exe!main()  Zeile 26 + 0x8 Bytes   C++
   Merlin.exe!__tmainCRTStartup()  Zeile 266 + 0x12 Bytes   C
   kernel32.dll!767f36d6()    
   ntdll.dll!77ac883c()    
   ntdll.dll!77ac880f()    



das ist alles was da drinne steht

mfg
FleX


Nach oben
 Profil  
 
BeitragVerfasst: 16.01.2009, 15:34 
Offline

Registriert: 21.12.2008, 16:13
Beiträge: 15
Niemand eine idee?

weiß echt nicht woran es liegt


mfg
FleX


Nach oben
 Profil  
 
BeitragVerfasst: 16.01.2009, 19:36 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Fügt mal den source von irrlicht zu deinem projekt hinzu. Dann siehst du wo genau in Irrlicht es knallt.

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
BeitragVerfasst: 16.01.2009, 20:27 
Offline

Registriert: 21.12.2008, 16:13
Beiträge: 15
Bin nochmal in gedanken durch die erstellung meinen spieles gegangen und ja seit dem eventreceiver gab es probleme :/ hab ich rausgenommen nun geht alles

EventReceiver.h:
Code:
#include <irrlicht.h>

#ifndef __EVENTRECEIVER_H__
#define __EVENTRECEIVER_H__

using namespace irr;

class EventReceiver : public IEventReceiver {
public:
   virtual bool OnEvent(const SEvent& event);
};

#endif



EventReceiver.cpp:
Code:
#include <irrlicht.h>
#include "EventReceiver.h"
// Event Receiver

bool EventReceiver::OnEvent(const SEvent& event){
   printf("Incomming Event!\n");
   return false;
}


Das mein receiver sehe da nichtwirklich ein fehler drinne?

vll. weiß einer dadrauf eine lösung :)


Nach oben
 Profil  
 
BeitragVerfasst: 18.01.2009, 13:40 
Offline
Benutzeravatar

Registriert: 11.01.2009, 19:31
Beiträge: 18
Wohnort: ffm
wenn du bei OnEvent false zurückgibts, wird das event weitergereicht, zb an kameras und so weiter, wenn du also ein event beutzt hast, solltest du true zurückgeben, hat bei mir ein oder zweimal probleme bereitet.
sollte ansonsten richtig sein.
hast du vielleicht vergessen, in der main() den eventReceiver zu erstellen? und du musst den auch eintragen bei dem device (device->setEventReceiver(xy) oder direkt beim createDevice(..) der letzte parameter) !


Nach oben
 Profil  
 
BeitragVerfasst: 18.01.2009, 15:57 
Offline

Registriert: 21.12.2008, 16:13
Beiträge: 15
psychophoniac hat geschrieben:
wenn du bei OnEvent false zurückgibts, wird das event weitergereicht, zb an kameras und so weiter, wenn du also ein event beutzt hast, solltest du true zurückgeben, hat bei mir ein oder zweimal probleme bereitet.


Das Weiß ich ja!

Der Receiver ist ja leer wie man sieht!

psychophoniac hat geschrieben:
sollte ansonsten richtig sein.


Dachte ich auch!

psychophoniac hat geschrieben:
hast du vielleicht vergessen, in der main() den eventReceiver zu erstellen?


Nein! Es crasht nur mit Receiver...!

psychophoniac hat geschrieben:
und du musst den auch eintragen bei dem device (device->setEventReceiver(xy) oder direkt beim createDevice(..) der letzte parameter) !


Bei beiden Methoden Crasht es.

mfg
FleX

EDIT:: Habs geschaft geht nun!


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 12 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de