JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Problem mit einer Direct3D Klasse

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 02.03.2003, 09:37    Titel: Problem mit einer Direct3D Klasse Antworten mit Zitat

Hi,

Ich habe mir eine Klasse für Direct3D gemacht und sie in eine Dll kompiliert, wenn ich in einem Projekt die Funktionen der Klasse nutze, funktioniert eigentlich alles, doch wenn ich das Programm beende, kommt die Fehlermeldung "Diese Anwendung wurde aufgrund eines ungültigen Vorgangs geschlossen" bei einem klick auf Debug springt der Compiler auf den Destruktor der Direct3D Klasse, noch genauer auf die Stelle wo die Release Funktion des Device aufgerufen wird. In der Log Datei steht das der Destruktor 8 mal aufgerufen wird. Dieses Problem tritt allerdings nur auf wenn ich aus meiner Modellklasse ein X-File lade und Zeichne.

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 02.03.2003, 11:22    Titel: Antworten mit Zitat

Zerstörst du das device sofort mit einer Release-Funktion oder prüfst du vorher, ob das Device überhaupt noch vergeben ist?
Code:

if(lpD3DDevice) {
  lpD3DDevice->Release();
  lpD3DDevice=null;
}


AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 02.03.2003, 11:25    Titel: Antworten mit Zitat

Ich mach es so wie im Buch:
Code:

if(lpD3DDevice)
{
    lpD3DDevice->Release();
    lpD3DDevice = NULL;
}

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 02.03.2003, 19:06    Titel: Antworten mit Zitat

Ok, das Problem hat sich gelöst.

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
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