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

11

16.11.2008, 19:00

http://www.boost.org/doc/libs/1_37_0/libs/conversion/lexical_cast.htm

Ist einfacher ;-)
Lieber dumm fragen, als dumm bleiben!

12

16.11.2008, 19:10

Zitat von »"David Scherfgen"«

Code zeigen.
Habe den Verdacht, dass du das Ergebnis noch benutzt, nachdem der Stream zerstört wurde.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
// Deklarationen der Vars (vor der Schleife)

const char *text = NULL;
float a=g_pTimer->GetCurTime();
stringstream s; 

// Code in der Spielschleife

s << g_pTimer->GetCurTime(); 
text = s.str().c_str();

message = TTF_RenderText_Solid( font, text, textColor );

13

16.11.2008, 22:24

C-/C++-Quelltext

1
2
3
4
std::ostringstream ss;
ss << g_pTimer->GetCurTime();

message = TTF_RenderText_Solid(font, ss.str().c_str(), textColor );
ne also das Objekt ist noch gültig und sollte so klappen.
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Faule Socke

Community-Fossil

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

14

16.11.2008, 22:39

RaXor: Zeig mal die Definition von GetCurTime.

Socke

15

16.11.2008, 22:46

Klasse. Funktioniert. Vielen Dank ;)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

16

16.11.2008, 23:09

Hä, was hast du denn jetzt geändert?

17

16.11.2008, 23:13

std::stringstream
durch
std::ostringstream
ersetzt

//edit: an dem stream liegts doch nicht. Als ich const char *text; wieder eingefügt hab (als Zwischenspeicherung), gings wieder nicht, also lag es wohl daran.

CodingCat

1x Contest-Sieger

Beiträge: 420

Beruf: Student (KIT)

  • Private Nachricht senden

18

17.11.2008, 13:28

Zitat von »"Deviloper"«

C-/C++-Quelltext

1
2
3
4
std::ostringstream ss;
ss << g_pTimer->GetCurTime();

message = TTF_RenderText_Solid(font, ss.str().c_str(), textColor );
ne also das Objekt ist noch gültig und sollte so klappen.
Aber vor deiner Verkürzung des Codes war es durchaus ungültig. ;-)

Es liegt in der Tat an den temporären Objekten. In der Originalfassung war der von .str() zurückgegebene String temporär, deshalb der c_str nach der entsprechenden Zeile bereits wieder ungültig. In der verkürzten Fassung werden alle temporären Objekte innerhalb des Funktionsaufrufes erstellt und deshalb auch erst nach Ende des Aufrufs wieder aufgeräumt, somit ist der c_str gültig.
alphanew.net (last updated 2011-06-26) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite

Werbeanzeige