JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=6a73908dfbf6353e3b00874d093ab285Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Memoryleaks
Gehe zu Seite Zurück  1, 2, 3
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 22.03.2005, 13:21    Titel: Antworten mit Zitat

War das jetzt ironisch gemeint??? Hier der Destruktor + aufgerufene Methode im Destruktor(kann man sich aber auch selber angucken, ihr habt ja die Bsp. :
JLI-Spieleprogrammierung(JLI-ASTEROIDS) hat Folgendes geschrieben:
CPP:
// Destruktor - Objekte freigeben
CGameManager::~CGameManager()
{
    Reset();
}

// Speicher, der für die Sprites reserviert wurde wieder frei geben
void CGameManager::Reset(void)
{
    // Variablen zurücksetzen
    m_Level  = 1;
    m_Lives  = 3;
    m_Points = 0;

    // Obejkte in den Listen
    for(it=m_AsteroidList.begin();it!=m_AsteroidList.end();it++)
    {
        delete (*it);
    }

    // und Listen löschen
    m_AsteroidList.clear();

    for(it=m_ShotsList.begin();it!=m_ShotsList.end();it++)
    {
        delete (*it);
    }
   
    m_ShotsList.clear();

    for(it=m_ExplosionList.begin();it!=m_ExplosionList.end();it++)
    {
        delete (*it);
    }
   
    m_ExplosionList.clear();
}


da werden nur die Listen freigegeben(auch die news, aber net alle) und die ->release(); auch net!!!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 22.03.2005, 23:12    Titel: Antworten mit Zitat

Das was hier in der CGameManager-Klasse erstellt und im Destruktor wieder deletet wird, ist eine normale C-Klasse, die Christian erstellt hat(CSprite). Also kann man die Klasse selbst(bzw. eine Instanz davon) nicht releasen.
Schau doch mal in den Destruktor der CSprite-Klasse. Dort wird sich irgendwo auch das Releasen des tatsächlichen Surfaces finden Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 23.03.2005, 09:16    Titel: Antworten mit Zitat

Meinst du damit, dass der D3DDevice, der in der Methode init() in den m_lpD3DDevice von CGameManager kopiert wird, gar nicht in der CGameManager-class wiederfreigegeben werden muss?
JLI hat Folgendes geschrieben:
CPP:
void CGameManager::Init(LPDIRECT3DDEVICE9 lpDevice,CResourceManager* lpResManager,DirectXAudio* lpDXAudio)
{
    m_lpD3DDevice  = lpDevice;
    m_lpResManager = lpResManager;
    m_lpDXAudio    = lpDXAudio;
}

Wenn schon, dann sorry für den ganzen Aufwand Very Happy Kam mir nur komisch vor, da ich erst die deletes net gefunden hab(später schon) und dann auch der Device un so net mehr hier freigegeben werden musste. Thx für eure Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 23.03.2005, 14:49    Titel: Antworten mit Zitat

DirectXer hat Folgendes geschrieben:
Meinst du damit, dass der D3DDevice, der in der Methode init() in den m_lpD3DDevice von CGameManager kopiert wird, gar nicht in der CGameManager-class wiederfreigegeben werden muss?

Hmm...tut mir leid, so weit kenne ich mich mit D3D noch nicht aus. Aber das Freigeben der Sprites/Surfaces, das du in der Gamemanager Klasse nicht gefunden hast, das ist auf jeden Fall in der Sprite-Klasse vorhanden Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
HomeLess_PunkDrummer
JLI Master Trainee


Alter: 36
Anmeldedatum: 28.11.2004
Beiträge: 583
Wohnort: Alter Joghurtbecher an der A4
Medaillen: Keine

BeitragVerfasst am: 23.03.2005, 14:53    Titel: Antworten mit Zitat

Nö, dass Ding is doch nur ein Pointer auf das Device, und das Device ist in der CDirect3D-Klasse gespeichert. Da wird es auch wieder kaputtgemacht am Ende Smile
_________________
"Was die Götter angeht, so ist es mir unmöglich, zu wissen, ob sie existieren oder nicht, noch, was ihre Gestalt sei. Die Kräfte, die mich hindern, es zu wissen, sind zahlreich, und auch ist die Frage verworren und das menschliche Leben kurz."
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 24.03.2005, 09:29    Titel: Antworten mit Zitat

ok, thx, dann hat soch das erledigt Laughing
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2, 3
Seite 3 von 3

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum