Mysteriöses Dateifindungs problem
-
Ich programmier mit SDL ein bissel rum, habe programme die auch gut funktionieren wenn ich sie zumindest aus der ide(devcpp) starte.
Eigentlich haben die programme auch immer funktioniert wenn ich die .exe gestartet habe, jedoch findet er dann seit neuestem die bilder nich mehr obwohl sie da sind!?!
bsp: ../program prog.exe bg.png (prog.exe läd bg.png!)
start ich aus dev, null problemo
start ich so prog.exe findet ers bild nich(obwohl es früher mal ging und auch definitv da ist).hat jemand ne ahnung woran das liegen kann?
-
wie, was, wo?
wo ist denn das bild jetzt genau?
-
das bild ist in genau in dem ordner der exe!
und von da soll es in der exe auch geladen werden(also ohne ordner/ordner/...)!
eigentlich ging das mal, weiß nich wieso plötzlich nich mehr(hat das vielleicht mit dem linkvorgang zu tun?, kenn mich da nicht gut genug aus, denk aber eigentlich kann das nich sein)wie gesagt von der ide aus läufts, nur nich wenn ich die exe start
hier der spezielle aufruf:
Surface = IMG_Load(dateiname.c_str());//SDL_image if (Surface==NULL) throw std::string("Datei nicht gefunden: ") + dateiname;dateiname: "pic.png"(das ist auch vorhanden!)
?tipp? thx
-
Falls eine Projektdatei vorhanden ist, wo liegt diese
Compier + Version etc... wäre nett ...
-
projektdatei ist im ordner über dem programordner(hab ich auch schon probiert alle dateinen in den projektordner zu schieben)!
dev-cpp 4.9.9.2
compiler: mingw32 3.4.2
-
sorry leute, habs geklärt, war eigentlich simple:
hab die libpng12.dll von sdl_image nich im programmordner gehabt...
-
Das kommt davon, wenn man die Fehlercodes nicht richtig überprüft. f'`8k
Gruß, TGGC (\-/ has leading)
-
es gab keinen fehler code!!!
das ergebnis der anweisung:Surface = IMG_Load(dateiname.c_str());war NULL und in dem Falle wurde das programm wie gewünscht beendet!
Deshalb bin ich nicht auf anhieb darauf gekommen, daß eine dll fehlen könnte.
Fehlte z.B die zlib1.dll oder gar die sdl.dll, ja dann gibts eine fehlermeldung "dll bla konnte nich geladen...."Fazit: dev-cpp startet programme nicht einfach so, sondern teilt ihm irgendwie mit, wo die nötigen dlls in den ressourcen-verzeichnissen sind, das find ich persönlich ein bissel verwirrend, denn eigentlich muß doch das auszuführende programm sie selbst finden(nämlich im programmordner).