Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML, C++] Wczytywanie i zapisywanie plików

Ostatnio zmodyfikowano 2011-08-04 14:47
Autor Wiadomość
Dark
Temat założony przez niniejszego użytkownika
[SFML, C++] Wczytywanie i zapisywanie plików
» 2011-08-02 22:57:48
Gdzie trzeba wrzucić plik obrazu aby można go było wczytać? Mam problem też z zapisywaniem po prostu nie chce zapisać się do pliku zrzut ekranu.
P-37971
akwes
» 2011-08-02 22:59:05
Do folderu z plikami .cpp i .h jeżeli podajesz ścieżkę względną, a jak bezwzględną to obojętne...
P-37973
DejaVu
» 2011-08-03 00:12:53
W kursie masz przykład odczytu i zapisu bitmap. » KursyKurs SFML 1.6, C++ kurs. W kursie anglojęzycznym jest opisane jak zrobić zrzut ekranu (w tym moim chyba też, choć nie pamiętam tego na chwilę obecną i trzeba po prostu sprawdzić). Plik się zapewne zapisuje w katalogu w którym jest tworzony plik EXE, a jeżeli nie to w katalogu roboczym. Jeżeli plik się nie zapisał na dysku to metoda zwróci Ci wartość false - wówczas miejsce do którego chcesz zapisać nie istnieje bądź nie masz uprawnień do zapisywania pliku na danym nośniku (mało prawdopodobne).
P-37985
Dark
Temat założony przez niniejszego użytkownika
» 2011-08-03 10:49:39
Gdy chcę uruchomić aplikację wyskakuje mi
Unhandled exception at 0x69ff112e (msvcp100.dll) in Project A.exe: 0xC0000005: Access violation reading location 0x00366000.

a kod aplikacji to
C/C++
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>


int main()
{
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 800, 600, 32 ), "Crion" );
    sf::Shape Ksztalt;
    sf::Sprite sprajt;
    sf::Image image;
    image.LoadFromFile( "ludek.png" );
    sprajt.SetImage( image );
   
    sprajt.SetPosition( 500, 100 );
    sprajt.SetScale( 10, 6 );
   
   
   
   
    while( oknoAplikacji.IsOpened() )
    {
        sf::Event zdarzenie;
        while( oknoAplikacji.GetEvent( zdarzenie ) )
        {
            if( zdarzenie.Type == sf::Event::Closed )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::Escape )
                 oknoAplikacji.Close();
           
            if( zdarzenie.Type == sf::Event::KeyPressed && zdarzenie.Key.Code == sf::Key::F1 )
            {
                sf::Image zrzut = oknoAplikacji.Capture();
                zrzut.SaveToFile( "f.bmp" );
            }
           
           
        } //while
        oknoAplikacji.Clear( sf::Color::Green );
        Ksztalt.AddPoint( 100, 100, sf::Color::Blue, sf::Color::Red );
        Ksztalt.AddPoint( 100, 200, sf::Color::Blue, sf::Color::Green );
        Ksztalt.AddPoint( 200, 200, sf::Color::Blue, sf::Color::Cyan );
        Ksztalt.EnableFill( true );
        Ksztalt.EnableOutline( true );
        Ksztalt.SetOutlineWidth( 4 );
        oknoAplikacji.Draw( Ksztalt );
        oknoAplikacji.Draw( sprajt );
        oknoAplikacji.Display();
       
    } //while
    return 0;
}
P-37998
madmike44
» 2011-08-03 11:33:25
U mnie (Win XP Pro SP3, Code::Blocks, MinGW, SFML 1.6) Twój kod działa bez problemu. Patrząc po tym DLL-u, używasz IDE/kompilatora Microsoftu i błąd jest powodowany przez jakiś nieobsłużony wyjątek - Visual zgłasza naruszenie zasad dostępu do jakiegoś miejsca w pamięci.. Z tego wszystkiego wniosek, że problem nie leży raczej w Twoim kodzie..

P.S. Kompilacja przebiega bez najmniejszych problemów ?

(Przyjąłem w ciemno, że plik ludek.png istnieje, jest umieszczony w poprawnym folderze oraz masz uprawnienia do zapisu w katalogu z programem.)
P-38000
Dark
Temat założony przez niniejszego użytkownika
» 2011-08-03 11:41:32
Plik z obrazem jest umieszczony w folderze razem z plikiem w którym jest kod, więc powinien się wczytywać bez problemu.
P-38001
madmike44
» 2011-08-03 11:47:20
Wczyta się bez problemu, jeśli uruchamiasz aplikację bezpośrednio z poziomu IDE. Normalnie, wg Twojego kodu, plik powinien znajdować się w katalogu z plikiem wykonywalnym (jeśli jest inny, niż katalog zawierający kod źródłowy).
P-38003
Dark
Temat założony przez niniejszego użytkownika
» 2011-08-03 11:53:25
Wrzuciłem obraz tam gdzie mam plik .exe i wyrzuca tym razem ten sam błąd i zaznacza w bibliotece streambuf linijkę:
overflow( _Traits::to_int_type( * _Ptr ) ) ) )

Ta biblioteka jakoś niebardzo jest podpasowana pod visuala 2010, chyba przerzucę się na opengl :)
P-38005
« 1 » 2 3 4
  Strona 1 z 4 Następna strona