000
03.05.2008, 11:02
the_Crow
|
Ich programmiere gerade an einem Spiel und verwende dazu die SDL (Simple DirectMedia Layer). Alles funtioniert, aber sobald ich eine Bitmap laden will bekomme ich einen Fehler zurück "Couldn't load xyz". Woran könnte das liegen? Wo sucht das Programm nach der Datei? Die .exe liegt im Ordner "Release" und die Bitmaps liegen in "Release/Data". Ich versuche sie auch von dort zu laden, aber das Programm findet die Datein nicht.
Ich hab auch versucht die Datei einfach mit ifstream zu öffnen, aber auch da wird sie nicht gefunden.
Hier noch der Quellcode, der das Problem verursacht.
// Load // Aufgabe: Einfaches, nicht animiertes Sprite laden void CSprite::Load(const string sFilename){
// Bitmap laden m_pImage = SDL_LoadBMP(sFilename.c_str());
// Prüfen, ob alles glatt ging if (m_pImage == NULL){ cout << "Fehler beim Laden von: " << sFilename.c_str() << endl; cout << endl; cout << "Fehlermeldung: " << SDL_GetError() << endl;
// Framework heruntefahren g_pFramework->Quit();
// Gesamtes Spiel beenden exit (1); }
//Rect initialisieren m_Rect.x = 0; m_Rect.y = 0; m_Rect.w = m_pImage->w; m_Rect.h = m_pImage->h; } // Load
// Load // Aufgabe: Animiertes Sprite laden void CSprite::Load(const string sFilename, int NumFrames, int FrameWidth, int FrameHeight){
// Bitmap laden Load(sFilename);
// Rect für Animationsphase initialisieren m_NumFrames = NumFrames; m_FrameWidth = FrameWidth; m_FrameHeight = FrameHeight; m_FrameRect.w = FrameWidth; m_FrameRect.h = FrameHeight; m_NumFramesX = m_pImage->w / m_FrameWidth; } // Load
m_pSpritePlayer = new CSprite;
m_pSpritePlayer->Load("Data/Player.bmp", 11, 64, 64);
Bildschirmausgabe
Fehler beim Laden von: Data/Player.bmp Fehlermeldung: Couldn't open Data/Player.bmp
--
www.the-crow.at - meine persönliche Website | TibiaGerman | Twitter | Wiaschtlsiada
Dieser Beitrag wurde am 03.05.2008 um 11:04 von the_Crow bearbeitet.
|
|
Profil || Suche
|
001
03.05.2008, 12:05
hausi
|
Soweit ich mich noch an MSVS erinnern mag, war das wd nicht Release, sondern einfach das Projektverzeichnis. Also einfach data eins nach oben verschieben.
--
|
|
Profil || Suche
|
002
03.05.2008, 12:21
the_Crow
|
Hab den richtigen Ordner. Es ist der wo alle .cpp und .hpp Datein drin sind ^^ Leider hab ich jetzt noch ein anderes Problem. "xyz.exe hat ein Problem festgestellt und muss beendet werden." Keine Ahnung woran das liegt. Beim Compile bekomm ich keine Warnungen.
Edit: Ich glaub ich weiß woran es liegt. Wenn ich mit Debug kompiliere bekomm ich folgende Fehlermeldungen:
Game.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW" in Funktion ""public: class CAsteroid const & __thiscall std::list<class CAsteroid,class std::allocator<class CAsteroid> >::_Const_iterator<1>::operator*(void)const " (??D?$_Const_iterator@$00@?$list@VCAsteroid@@V?$allocator@VCAsteroid@@@std@@@std@@QBEABVCAsteroid@@XZ)". Player.obj : error LNK2001: Nicht aufgelöstes externes Symbol "__imp___CrtDbgReportW". H:\WORK\c++\SDL_Game\Debug\SDL_Game.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
--
www.the-crow.at - meine persönliche Website | TibiaGerman | Twitter | Wiaschtlsiada
Dieser Beitrag wurde am 03.05.2008 um 12:26 von the_Crow bearbeitet.
|
|
Profil || Suche
|
003
03.05.2008, 12:38
the_Crow
|
Haha ^^. Mit Release-Compile funktioniert es. Bei Debug bekomm noch immer die Fehler aus dem oberen Post.
--
www.the-crow.at - meine persönliche Website | TibiaGerman | Twitter | Wiaschtlsiada
|
|
Profil || Suche
|
004
03.05.2008, 13:08
caedes
|
probier doch mal gcc/mingw, vllt in verbindung mit codebocks oder eclipse cdt oder so..
--
caedes
Deutschland rückt nach Einschätzung der Sicherheitsbehörden im Superwahljahr verstärkt ins Visier von Terroristen.
|
|
Profil || Suche
|