JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=d21635faa60c55773678dc96fd9932e8Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

befehl addieren

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Robin_
Gast








BeitragVerfasst am: 21.12.2009, 20:46    Titel: befehl addieren Antworten mit Zitat

ich weiß der titel isch shit aber egal...

und zwar hab ich ein mini problem des auch leicht zu beheben ist.

ich hab den befehl:

CPP:
Direct3D.CreateScreenshot("Screenshots/Bild_.png");


so und jetzt wollte ich ne zeit einfügen, in php würde das ca. so gehen:

Code:

Direct3D.CreateScreenshot("Screenshots/Bild_" . timeGetTime() . ".png");


doch so gehts nich und die frage war: wie bekomm ich in den Bild namen die zeit rein ??

GRuß Robin
Nach oben
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 21.12.2009, 21:42    Titel: Antworten mit Zitat

Stringstreams sind cool:
http://www.cplusplus.com/reference/iostream/stringstream/

Code:

#include <sstream>

stringstream s;
int zahl=7;
s << "Screenshots/Bild" << zahl << ".png";
CreateScreenshot(s.str().c_str());

_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 21.12.2009, 21:43    Titel: Antworten mit Zitat

Oder auch:

http://www.boost.org/doc/libs/1_41_0/libs/format/index.html
(muss man sich schon reinlesen aber dann sind die ganz nett zu benutzen. Die Doku ist auch recht gut, nur halt englisch (sollte ja kein Problem für dich sein^^)
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 25.12.2009, 08:49    Titel: Antworten mit Zitat

beim Stringstream kommt folgender fehler

Code:

Main.cpp
Main.cpp(222) : error C2664: 'CDirect3D::CreateScreenshot' : cannot convert parameter 1 from 'const char *' to 'char *'
        Conversion loses qualifiers


GRuß Robin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 36
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 25.12.2009, 14:32    Titel: Antworten mit Zitat

Jo, der Compiler ist da halt etwas pingelig.
Entweder s.str().c_str() in einen neuen C-String kopieren(strcpy), der dann eben nicht als const definiert ist oder den const_cast direkt auf s.str().c_str() anwenden.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 25.12.2009, 15:51    Titel: Antworten mit Zitat

Ich gehe mal davon aus, dass CDirect3D eine von dir geschriebene Klasse ist.
Änder einfach die Funktion so um, dass sie konstante Parameter benutzt. Benutze const wo immer es gerade geht!

http://www.parashift.com/c++-faq-lite/const-correctness.html

@TLOP: Deine Vorschläge müsste man benutzen, wenn man die Funktion nicht ändern könnte, aber sie sind halt beide nicht sehr schön und eben nur für Notfälle.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Robin
Junior JLI'ler


Alter: 30
Anmeldedatum: 29.10.2008
Beiträge: 73
Wohnort: Inneringen
Medaillen: Keine

BeitragVerfasst am: 03.01.2010, 22:24    Titel: Antworten mit Zitat

...oh hab vergessen zu sagen dass ich es schon hinbekommen hab... so:

Code:

sprintf(Text, "Screenshots/Bild_%d%s", timeGetTime(), ".png");
            Direct3D.CreateScreenshot(Text);


GRuß Robin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 36
Anmeldedatum: 17.02.2003
Beiträge: 3431
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 05.01.2010, 00:38    Titel: Antworten mit Zitat

Auch eine Möglichkeit, aber die anderen hier vorgestellten sind einfach besser und sicherer. sprintf macht ein Programm unsicher denn es kann wirklich eine Menge schief gehen.
Also, auch wenn es ein wenig Einarbeitung benötigt, lerne frühzeitig die schönen und sicheren Methoden aus der STL zu benutzen!
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 06.01.2010, 11:30    Titel: Antworten mit Zitat

Wenn es denn schon aus der printf-Familie sein muss, kannst du auf snprintf() ausweichen. Diese Funktion ist sicherer als sprintf(), weil sie neben dem Pointer auf den Zieltext auch die Länge des Zielpointer-Speichers erwartet. So kommt es nicht zum Überschreiben von ungültigem Speicher (Pufferüberlauf)

MfG

PS.: Die ist der 50000-ste Beitrag des Forums. Wink
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum