|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Otscho Super JLI'ler
Alter: 36 Anmeldedatum: 31.08.2006 Beiträge: 338 Wohnort: Gummibären-Gasse Medaillen: Keine
|
Verfasst am: 09.09.2007, 12:55 Titel: Problem mit klasseneigenen Deklarationen |
|
|
Hi,
Ich hab gerade eine sehr seltsame Ausnahme bei meinem Projekt:
Und zwar hab ich einen Resoucenmanager, der unter anderm auch Texturen managed. Da hab ich eine map wo die pointer davon gespeichert werden und entsprechende Methoden der Klasse, die sich darum kümmern. So weit so gut. Bisher funktioniert alles wunderbar.
Jetzt wollte ich allerdings meinen Resoucenmanager erweitern: Hab ne neue list mit den entsprechenden Methoden deklariert. Auch hier komilieren und linken anstandslos. Doch als ich das Programm dann ausführen wollte stürtzt es ab, wenn es auf die list zugreifen soll.
Hab später auch versucht rauszukriegen ob es an der List liegt: bei Zugriff auf sämtliche Variablen (protected) kommt es zu einem Absturtz; nur bei Aufruf einer klasseneigenen Methode (public) bleit das Programm stabil.
Hat jemad ne Ahnung an was das liegen könnte.
Ich probier jetzt schon seit 3 Tagen rum, hab aber nicht ansatzweiße ne Idee an was das ligen könnte. Dachte zuerst das da die Projekt-Einstellungen schuld sind, hab aber schon alles in nem neuen Projekt ausprobiert -> selber Fehler.
Danke schon mal für euer Bemühen. |
|
Nach oben |
|
|
Robrunner Mini JLI'ler
Alter: 32 Anmeldedatum: 08.07.2007 Beiträge: 44 Wohnort: Passau Medaillen: Keine
|
Verfasst am: 09.09.2007, 12:59 Titel: |
|
|
Greift eine Methode der Klasse auf die List zu oder nicht? |
|
Nach oben |
|
|
Otscho Super JLI'ler
Alter: 36 Anmeldedatum: 31.08.2006 Beiträge: 338 Wohnort: Gummibären-Gasse Medaillen: Keine
|
Verfasst am: 09.09.2007, 13:09 Titel: |
|
|
Ja^^
ein kleines Beispiel:
Header:
CPP: | class __declspec(dllexport) CResManager
{
protected:
...
list<SturctTextur*>TexturList;
...
public:
CResManager();
virtual ~CResManager();
...
void AddTexture(LPCWSTR lpFileName, UINT mipLevels = 1);
void AddTexture(UINT* ID, UINT sizeX, UINT sizeY, UINT mipLevels = 1);
...
private:
...
}; |
Soure:
CPP: | void CResManager::AddTexture(UINT* ID, UINT sizeX, UINT sizeY, UINT mipLevels){
// if the texture is already in memory no new texture is needed
SturctTextur* lpTexture = new SturctTextur;
lpTexture->textur = GetTexture(ID); // Fehler
if(lpTexture->textur) return;
lpTexture->info.Height = sizeY;
lpTexture->info.Width = sizeX;
lpTexture->mipLevels = mipLevels;
HRESULT hr;
hr = D3DXCreateTexture(m_lpD3DDevice, sizeX, sizeY, mipLevels, 0, // Fehler !!!
D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &lpTexture->textur); // Fehler !!!
TexturList.push_back(lpTexture); // Fehler !!!
} |
bei allen Passagen mit " // Fehler !!!" hinter der Zeile kommt es zum Absturtz. |
|
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
|