|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 11.06.2006, 19:21 Titel: Runtime Error beim releasen |
|
|
Hi
Seit kurzem gibt es immer einen Runtime Error wenn ich irgendein DX Objekt freigeben will. Hier mal der Code:
Code: | Unhandled exception at 0x4fd94d07 in Direct3DTest.exe: 0xC0000005: Access violation reading location 0xfeeefef6. |
Zuerst hab ich gedacht, dass das schon freigegeben wurde, aber es passiert bei jedem Objekt..
Hier mal ein paar Codesnipsel:
CPP: | if(FAILED(D3DXGetImageInfoFromFile(Filename.c_str(), &Tex.ImgInfo))) //Image Info von Bild holen
{
return false;
}
//Textur erstellen
if(FAILED(D3DXCreateTextureFromFileEx(D3D->GetDevice(), Filename.c_str(), (long)Tex.ImgInfo.Width, (long)Tex.ImgInfo.Height, 1, 0,
D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_DEFAULT, 0xFFFF00FF, NULL, NULL, &Tex.Texture)))
{
return false;
}
//Textur einfügen |
Code: | It->second.Texture->Release();
Textures.erase(It); |
Ich mein so viel kann man da ja nicht falsch machen. Liegt das vieleicht am Direct3D Device?
Hoffe ihr könnt mir helfen.
MfG 51m0n _________________ Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren |
|
Nach oben |
|
|
Dragon Super JLI'ler
Alter: 38 Anmeldedatum: 24.05.2004 Beiträge: 340 Wohnort: Sachsen Medaillen: Keine
|
Verfasst am: 11.06.2006, 19:28 Titel: Re: Runtime Error beim releasen |
|
|
51m0n hat Folgendes geschrieben: | Code: | It->second.Texture->Release();
Textures.erase(It); |
|
Das hast du bestimmt mit einer Schleife gemacht? Zeig die bitte mal. Ich hab eine Vermutung ^^. _________________ Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung |
|
Nach oben |
|
|
51m0n JLI'ler
Alter: 33 Anmeldedatum: 06.01.2006 Beiträge: 167 Wohnort: Erkelenz Medaillen: Keine
|
Verfasst am: 11.06.2006, 19:56 Titel: |
|
|
ne nix da Schleife
Das man da dann It = erase(It); schreiben muss hab ich (leider) schon öfters festgestellt, falls du das meinst ^^.
Aber an einer anderen Stelle ist eine Schleife:
CPP: | for(std::map<std::wstring, Texture_>::iterator It = Textures.begin(); It != Textures.end(); ++It)
{
It->second.Texture->Release();
} |
Aber es passiert ja auch bei Fonts usw :/
edit:
Fehler gefunden. Ich hab einer Methode anstatt einem Zeiger auf meine D3D Klasse eine Kopie davpn übergeben
Ich hasse solche Fehler, die bringen mich immer zum verzweifeln :/ _________________ Teigwaren
heißen Teigwaren,
weil sie früher einmal Teig waren |
|
Nach oben |
|
|
|
|
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
|