Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
HotAcid Super JLI'ler
Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 28.03.2004, 13:19 Titel: Ausnahmen & Debugger |
|
|
jetzt will ich mich doch mal mit dem Debugger auf die Suche nach den Fehlern machen, da merke ich doch, dass der Debugger eine unbehandelte Ausnahme findet:
Ich starte den Debug-Prozess, da kommt gleich eine Meldung:
"Unbehandelte Ausnahme bei 0x004e24b2 in Ultima Ratio.exe: 0xC0000005: Zugriffsverletzung-Leseposition 0x00000014."
der gelbe Pfeil steht hier:
Code: | // Sprite zeichnen
void CSprite::Draw(RECT* r)
{
float m_TempRot = m_Rotation * D3DX_PI / 180.0f;
// Sprite in der passenden Animationsstufe zeichnen
m_lpSprite->Draw(m_AnimationVec[m_CurrentImage],
r,
&m_vScale,
&m_vRotationCenter,
m_TempRot,
&m_vPosition,
0xFFFFFFFF); // <-- hier steht der Pfeil
} |
Hierzu Ideen?
gleich ein weiteres Problem: wenn ich mein Programm beende, wird anscheinend eine weitere AUsnahme ausgelöst:
"Unbehandelte Ausnahme bei 0x004e0f52 in Ultima Ratio.exe: 0xC0000005: Zugriffsverletzung-Leseposition 0xdddddde5."
Code: | // Destructor - freigeben der Objekte
CSprite::~CSprite(void)
{
if(NULL != m_lpSprite)
{
m_lpSprite->Release(); // <-- hier ist der Pfeil
m_lpSprite = NULL;
}
// die Texturen dürfen hier nicht mehr frei gegeben
// werden, da dies im ResourcenManager erfolgt
} |
kurz und kapp: HILFE was soll das hier? was stimmt hier nicht?
dankeschön!!
Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 28.03.2004, 13:26 Titel: |
|
|
Hallo,
bei den Problemen sind m_lpSprite oder m_AnimationVec[m_CurrentImage] keine gültigen Zeiger. Muss du mal gucken, ob die Zeiger okay sind oder vorher schonmal gelöscht worden sind.
C. |
|
Nach oben |
|
|
HotAcid Super JLI'ler
Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 28.03.2004, 18:10 Titel: |
|
|
im Debugger: wenn ich in der Draw()-Methode über m_animationVec gehe, erscheint folgendes Fenster:
Code: | m_AnimationVec={first=??? last=???} |
wie kann ich denn da am besten weiter nach der Fehlerursache suchen? Bin im Umgang mit dem Debugger - wie man wohl sieht - noch nciht ganz so erfahren...
thx!
Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 28.03.2004, 18:42 Titel: |
|
|
Du kannst m_AnimationVec unten in die Überwachung eintragen und dann das ganze durchsuchen. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
HotAcid Super JLI'ler
Alter: 43 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 02.04.2004, 14:36 Titel: |
|
|
Ende gut, alles gut
Das Problem war folgende Codezeile:
Code: | m_Alphabet = CAlphabet(m_lpD3DDevice, m_ResourceManager,filename); |
Da hab ich wohl mal wieder den Zuweisungsoperator vergessen... jetzt gehts
danke für eure Hilfe!
Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
Nach oben |
|
|
|