Initialisieren von SDL_image funktioniert nicht... :confused:
-
Ich habe mit der SDL_2.0.4 und SDL_image 2.0.1 ein kleines Programm geschrieben welches einfach nur zwei Bilder (JPG, PNG) laden soll, und dann auf das schließen das Programms warten soll, aber dabei gibt es allerdings das Problem dass, wenn ich nach dem initialisieren der SDL, SDL_image initialisiere (jeweils für PNG und JPG) stürzt das Programm ab. Wenn ich die beiden Funktionen und IMG_Quit nicht aufrufe geht alles glatt- bis ich auf IMG_Load zugreifen möchte was (macht ja auch sinn), dann wieder zum (gleichen?!) Programmfehler führt. Was könnte ich da falsch machen? (Die SDL selber funktioniert und ch bin mir mehr oder weniger sicher sowohl die SDL als auch SDL_image richtig installiert und meine Projekteinstellungen richtig eingerichtet zu haben.) Programmcode:
-----------------------------------------------------------------------
[...Header, Einsprungspunkt, etc...]
SDL-Init (SDL_INIT_VIDEO);
IMG-Init (IMG_INIT_JPG);
IMG-Init (IMG_INIT_PNG);
[... ein paar Deklarationen...]
backg = IMG_Load ("backgimg.jpg");
img = IMG_Load ("img");
[...Schleife etc....]
IMG_Quit ();
SDL_Quit ();
return 0;
-----------------------------------------------------------------------
Danke schon mal im Vorraus [EDIT]: Wasn das für ein Schimpfwortfilter. V o r r a u s ist nicht grade als 'vulgäres' Wort bekannt... braucht man dazu zu oft. Man kanns auch übertreiben tstststs...
-
Kompilierbares Minimalbeispiel posten?
enignE schrieb:
V o r r a u s ist nicht grade als 'vulgäres' Wort bekannt...
Stimmt. Ist ja nicht einmal als Wort bekannt...
-
#include <iostream> #include <SDL.h> #include <SDL_image.h> int main (int argc, char *argv[]) { SDL_Init(SDL_INIT_VIDEO); IMG_Init(IMG_INIT_JPG); IMG_Init(IMG_INIT_PNG); SDL_Surface *surf1 = IMG_Load ("png-datei"); SDL_Surface *surf2 = IMG_Load ("jpg-datei"); surf1 = NULL; surf2 = NULL; IMG_Quit(); SDL_Quit(); return 0; }
Mit neuester Version der SDL und von SDL_image.
Kompiliert mit Microsoft Visual Studio Express 2012.
(Laufzeit)Fehler: Die Anwendung konnte nicht korrekt gestartet werden(0xc000007b). Kommt immer dann vor wenn eine Funktion aus SDL_image aufgerufen wird. Außerdem gibt die SDL_Initialisierung kein true zurück, obwohl das immer der Fall war, bevor ich die SDL zusammen mit SDL_image neu installiert habe. Ich habe bei beiden malen genau das gleiche getan.
Mehr gibt's dazu glaube ich nicht zu sagen.
-
Funktioniert hier einwandfrei. Hast du vielleicht irgendwo 32- und 64-Bit Bibliotheken vermischt?
-
Kann es sein, das dieses M$ VSE die .dll-Dateien von SDL2 und SDL_image im Verzeichnis der ausfuehrbaren Datei benoetigt ? (z.B. SDL2.dll, zlib.dll etc.)
Selbiges gilt vermutlich fuer die Bild-Dateien.Ich gehe davon aus, dass das obige Listing sehr kurz und sehr knapp gehalten ist, da die angeforderten Resourcen nicht wieder frei gegeben werden.