Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

30.12.2010, 14:13

SFML LoadFromFile

Hallo, ich hab mal wieder ein Problem mit der SFML ...

Ich versuche, eine Bitmap in ein sf::Image zu Laden (mit der LoadFromFile - Funktion)
Ich bekomme jedoch bei diesem Versuch plötzlich lauter Kryptische Zeichen in der Konsole (obwohl ich in die Konsole nichts schreibe) und ab und zu nach ca 5 - 10 sek eine Zugriffsverletzung (Nicht immer). Wenn ich keine Zugriffsverletzung bekomme und ich das Programm über die Konsole schließe (rotes X), dann kommt eine meldung, dass die Anwendung nicht reagiert und ich muss den Prozess beenden.
Muss ich da noch etwas beachten, was ich nicht getan habe?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "Framework.hpp"
#include "Sprite.hpp"
#include <Windows.h>
#include <iostream>

int main(int argc, char *argv[])
{
    //FreeConsole();

    g_pFramework -> Init(800,600,32,"SFML Erstellen",false);

        //Mit der Variable image funktioniert alles Problemlos ....
    Image image(10,10,Color(255,255,255,255));
    Sprite sprite(image);

        //Bei image2 kommt dan der berschiebene Fehler
    Image image2;
    image2.LoadFromFile("Data/Sprite.bmp");
    
    //CSprite sprite(image);

    Event Event;
    while(g_pFramework -> IsOpened())
    {
        g_pFramework -> Clear();

        if(g_pFramework -> GetEvent(Event) && Event.Type == Event::Closed)
            g_pFramework -> Quit();
        if(g_pFramework -> KeyDown(Key::F))
            g_pFramework -> ToggleFullScreen();

        g_pFramework -> GetScreen() ->  Draw(sprite);   
        sprite.Move(100*g_pFramework->GetFrameTime(),100*g_pFramework->GetFrameTime());

        if(sprite.GetPosition().y > 600.0f)
            sprite.SetPosition(sprite.GetPosition().x,0.0f);
        else if(sprite.GetPosition().x > 800)
            sprite.SetPosition(0.0f,sprite.GetPosition().y);

        g_pFramework -> Flip(); 
    }
    
    g_pFramework -> Quit();

    return 0;
}


in g_pFramework wird btw mein RenderWindow verwalltet.

Nun habe ich mir gedacht, falls auch ihr keinen Fehler findet, ob es vielleicht daran liegt, dass ich beim Kompilieren der SFML - DLLs einen Error bekommen habe, weswegen ich noch die sfml-window.dll von der 2008er Version verwende (Ich verwende Visual Studio 2010).
Ich selber glaube nicht, dass es daran liegt, weil sf::Image ja in den Graphics liegt, und nicht im Window (kann mich aber auch irren).

Hoffe, ihr könnt mir auch diesesmal weiterhelfen

Liebe Grüße,
Ombalat

BLU3 L30PARD

Treue Seele

Beiträge: 336

Wohnort: Hoch oben im Norden Schleswig Holsteins

Beruf: Schüler

  • Private Nachricht senden

2

30.12.2010, 14:22

Was die dlls angeht, hat -insane- schon welche auf seiner HP bereitgestellt, die funktionieren dann richtig ;)

Vielleicht solltest du statt

C-/C++-Quelltext

1
image2.LoadFromFile("<Pfad>");


lieber

C-/C++-Quelltext

1
2
3
if(image2.LoadFromFile("<Pfad>") {
    return EXIT_FAILURE;
}

verwenden. So wird der Fehler, falls einer auftritt, in der Konsole ausgegeben.
Ansonsten liegts vielleicht an deinem Framework ;)

3

30.12.2010, 14:26

Kannst im prinzip auch SFML 2 benutzen.
Es gibt bei der Benutzung der Library nur einige wenige Änderungen und der Rest ist selbsterklärend.

Vorkompilierter Stuff gibts natürlich mit dazu ;)
http://dl.dropbox.com/u/493554/sfml2.rar
Freund: "Ein Leben ohne Kaffee ist unmöglich, aber sinnlos!"
"Wer Angst vor der Dunkelheit hat, hat noch nie gesehen, was das Licht anrichten kann!"

4

30.12.2010, 15:06

Lag wirklich (zum teil) daran, dass das kompilieren nicht ganz funktioniert hat ... Mit den Lib - Datein von -insane- (Danke an dieser stelle :)) funktioniert es wenigstens im Realaise modus.
Muss man im Debug modus zwingend die *-d.lib linken? Geht das mit den "normaln" .lib´s nicht?

BLU3 L30PARD

Treue Seele

Beiträge: 336

Wohnort: Hoch oben im Norden Schleswig Holsteins

Beruf: Schüler

  • Private Nachricht senden

5

30.12.2010, 16:47

Umsonst sind die -d libs auf jeden Fall nicht ;)
Also ja, wäre besser, wenn du das machst.

6

30.12.2010, 16:48

Ja, davon geh ich auch aus ^^ und ohne den -d lib´s gehts im debug modus auch nicht.
War mir nur neu, weil ich das von der SDL her nicht gekannt hab ^^

Werbeanzeige

Ähnliche Themen