[C++][SFML] Ładowanie obrazu z pliku.

Tomix91
Użytkownik
Użytkownik
Posty: 175
Rejestracja: 8 sty 2009, o 19:12
Płeć: Mężczyzna
Lokalizacja: Stalowa Wola
Podziękował: 26 razy
Pomógł: 12 razy

[C++][SFML] Ładowanie obrazu z pliku.

Post autor: Tomix91 »

Witam mam problem z ładowaniem obrazu z pliku w bibliotece SFML:

Kod: Zaznacz cały

Image obraz;
obraz.LoadFromFile("obraz.jpg");

Mam taki kod, i w ogóle mi nie wykrywa obrazu, jak dodam:

Kod: Zaznacz cały

 obraz.LoadFromFile("/obraz.jpg");

to wywala mi:

Kod: Zaznacz cały

Failed to  load image "/obraz.jpg"- Reason : Unable to open file
Obraz znajduje się w folderze z plikiem .exe, mam Code Block'a i nie wiem co jest nie tak.
Ostatnio zmieniony 11 kwie 2012, o 18:54 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++][SFML] Ładowanie obrazu z pliku.

Post autor: Afish »

A plik na pewno znajduje się w folderze uruchomieniowym programu? Jaki system? Ścieżka /obraz.jpg i obraz.jpg to zupełnie inne ścieżki.
zhtk
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 2 kwie 2012, o 10:53
Płeć: Mężczyzna
Lokalizacja: Warszawa
Pomógł: 2 razy

[C++][SFML] Ładowanie obrazu z pliku.

Post autor: zhtk »

Ten pierwszy kod jest prawidłowy.
1. Podmieniłeś kompilator na nowszy? Wrzuć do ustawień linkera -static-libgcc, w przeciwnym przypadku podczas uruchamiania pliku będzie wyskakiwał błąd o braku biblioteki dll.
2. Uruchom program nie z poziomu kompilatora, tylko wejdź do katalogu z skompilowanym projektem (release lub debug) i zobacz czy tam masz plik z obrazem. Następnie normalnie uruchom skompilowany program (klikasz 2 razy na plik .exe). Takich programów nie uruchamia się z poziomu CodeBlocksa z powodu różnych niuansów związanych z katalogiem roboczym (po dokładniejsze informacje odsyłam do msdn- shellexec, w którego argumentach podajesz ścieżkę do katalogu roboczego, domyślnie jest on ustawiony na mingw/bin).-- 11 kwi 2012, o 21:17 --Ten pierwszy kod jest prawidłowy.
1. Podmieniłeś kompilator na nowszy? Wrzuć do ustawień linkera -static-libgcc, w przeciwnym przypadku podczas uruchamiania pliku będzie wyskakiwał błąd o braku biblioteki dll.
2. Uruchom program nie z poziomu CodeBlocks, tylko wejdź do katalogu z skompilowanym projektem (release lub debug) i zobacz czy tam masz plik z obrazem. Następnie normalnie uruchom skompilowany program (klikasz 2 razy na plik .exe). Takich programów nie uruchamia się z poziomu CodeBlocksa z powodu różnych niuansów związanych z katalogiem roboczym (po dokładniejsze informacje odsyłam do msdn- shellexec, w którego argumentach podajesz ścieżkę do katalogu roboczego, domyślnie jest on ustawiony na mingw/bin).
Tomix91
Użytkownik
Użytkownik
Posty: 175
Rejestracja: 8 sty 2009, o 19:12
Płeć: Mężczyzna
Lokalizacja: Stalowa Wola
Podziękował: 26 razy
Pomógł: 12 razy

[C++][SFML] Ładowanie obrazu z pliku.

Post autor: Tomix91 »

Dzięki za odpowiedź, działam na Windowsie 7. Próbowałem wrzucić do linkera tą bibliotekę ale wyskakuje mi takie coś:

Kod: Zaznacz cały

 cannot find -lstatic-libgcc 
mam bibliotekę libgcc_s_dw2-1.dll w system32 i w plikach bin, debug mojego projektu, nie mam pojęcia dlaczego jej nie widzi.
zhtk
Użytkownik
Użytkownik
Posty: 13
Rejestracja: 2 kwie 2012, o 10:53
Płeć: Mężczyzna
Lokalizacja: Warszawa
Pomógł: 2 razy

[C++][SFML] Ładowanie obrazu z pliku.

Post autor: zhtk »

Bez l - to nie jest biblioteka, a opcja linkera, która zaszywa ten dll o którym napisałeś w pliku exe. Jeżeli ta opcja nie zadziała, to zamień kolejność słów na -libgcc-static
ODPOWIEDZ