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

01.02.2010, 15:26

Problem mit string in sfml in einer klasse

Hi,

ich bekomme einen Error, wenn ich mein Programm beenden will und zwar:

Zitat

Unhandled exception at 0x6903a26a in SFML lernen 1.exe: 0xC0000005: Access violation reading location 0x00000054.
(im Windows Programm hat ein Fehlerverursacht). Dann hab ich es durch googlen herausgefunden, dass es an sf:String bla; in einer Klasse liegt.

Hier ist der link.
http://www.sfml-dev.org/forum/viewtopic.php?t=1195&sid=aba488f87f1b84792f89547b31695cfb

Wie ich verstanden habe solle man die standard Font nicht so laden sondern aus einer Datei im Spielordner.

Dann hab ich das auch so gemacht

C-/C++-Quelltext

1
2
3
public:
    sf::String playerName;
    sf::Font myFont;


C-/C++-Quelltext

1
2
3
4
CPlayer::CPlayer()
{
    myFont.LoadFromFile("Arial.ttf");
    playerName.SetFont(myFont);


Könnt ihr mir sagen ob ich das falsch verstanden habe oder wie man das fixed? Die Diskussion ist ja leider in english.
Nichts ist unmöglich.

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

2

01.02.2010, 15:29

Also hab den thread nur überflogen.

Erste möglichkeit: Die statischen libs von SFML verwenden.
Zweite möglichkeit: Eine andere Font schon direkt im Konstruktor angeben. setFont() ist schon zu spät.

Also im Konstruktor deiner Klasse:

Quellcode

1
2
3
4
CPlayer::CPlayer()
: playerName( "...", font )
{
}


Die genaue Reihenfolge der Parameter für sf::String kenn ich jetzt grad nicht, wird aber in der Doku stehen.