Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Robin_ Gast
|
Verfasst am: 21.12.2009, 20:46 Titel: befehl addieren |
|
|
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: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
Robin Junior JLI'ler
Alter: 30 Anmeldedatum: 29.10.2008 Beiträge: 73 Wohnort: Inneringen Medaillen: Keine
|
Verfasst am: 25.12.2009, 08:49 Titel: |
|
|
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 |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 25.12.2009, 14:32 Titel: |
|
|
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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 25.12.2009, 15:51 Titel: |
|
|
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 |
|
|
Robin Junior JLI'ler
Alter: 30 Anmeldedatum: 29.10.2008 Beiträge: 73 Wohnort: Inneringen Medaillen: Keine
|
Verfasst am: 03.01.2010, 22:24 Titel: |
|
|
...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 |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 05.01.2010, 00:38 Titel: |
|
|
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 |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 06.01.2010, 11:30 Titel: |
|
|
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. _________________
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 |
|
|
|