CString::Format
-
hallo
wo liegt der fehler?CString temStr = "Buffer auf Heap erzeugt - mit CleanHeap freigeben!"; temStr.Format("%s%d",temStr,5); MessageBox((LPCTSTR)temStr,"Buffer",MB_OK);die ausgabe in der Messagebox: YYYYYYYYYYYYYYYYYYYYYYYYYYYYYY 5
Warum die Y und nicht mein String?
uwe
-
Ich zitiere mal aus der MSDN unter CString::Format:
The call will fail if the string object itself is offered as a parameter to Format. For example, the following code:
CString str = "Some Data";
str.Format("%s%d", str, 123); // Attention: str is also used in the parameter list.will cause unpredictable results.
Oder mit anderen Worten: Nimm zwei.
CString temStr = "Buffer auf Heap erzeugt - mit CleanHeap freigeben!"; CString NEU; NEU.Format("%s%d",temStr,5); MessageBox((LPCTSTR)NEU,"Buffer",MB_OK);
-
Oder wieso nicht so:
CString temStr = "Buffer auf Heap erzeugt - mit CleanHeap freigeben!"; temStr += 5; MessageBox((LPCTSTR)temStr,"Buffer",MB_OK);
-
Wenn, dann so:
temStr += "5";
-
ist doch egal!!!
-
Stalin schrieb:
ist doch egal!!!
Nein ist es nicht da man keinen int in einen CString reinschreiben kann.

-
Mein Gott...
Dann eben ja. Aber ist das nicht egal vom Verständnis her??
Ja ich gelobe Besserung und werde immer korrekte Syntax angeben...Ciao,
Stalin
-
Ach so hab ich vergessen:
:p
-
Oder einfach:
CString temStr = ""; temStr.Format("Buffer auf Heap erzeugt - mit CleanHeap freigeben!%d",5); MessageBox(temStr);
-
Stalin schrieb:
Ach so hab ich vergessen:
:pWenn man Antworten gibt sollen sie schon richtig sein. Wenn man darauf aufmerksam gemacht wird das es falsch ist soll man nicht mit "Ist eh egal da der Fragesteller eh zu blöd ist es zu kapieren" (So hätte ich es aufgefasst und ist eine Interpretation deines Postings) sondern seinen Fehler eingestehen.
Bei deinem fehler würde bereits die nächste Frage kommen das sich der Frager darauf verläßt das sie richtig ist.
-
Stalin schrieb:
Mein Gott...
Dann eben ja. Aber ist das nicht egal vom Verständnis her??Ganz im Gegenteil.