TextOut mit seltsamen Zeichen am Ende
-
Hallo zusammen,
icher habe einen Integer den ich mit _itow_s in ein Charakterfeld konvertiere und anschließend mit der Funktion TextOut ausgebe:
wchar_t buffer_lX[6] = {' '}; _itow_s( JoystickState.lX, buffer_lX, 10); TextOut(hdc, 1100, 50, (LPCWSTR)buffer_lX, 6);Wenn ich eine fünfstellige Zahl ausgebe, erscheint sie wunderbar, so wie es sein soll: 32757
Sobald die Zahl nur noch vierstellig ist, erscheint am Ende ein Zeichen: 1234
Ist die Zahl nur noch dreistellig erscheinen am Ende das Zeichen doppelt: 123 usw.
Hat jemand eine Erklärung warum diese Zeichen auftauchen?

-
L'\0' Terminierung des Strings!?
Und bei TextOut(hdc, 1100, 50, (LPCWSTR)buffer_lX, 6); gibst du immer constant 6 an!??
-
Die Zeichen tauchen ebenfalls bei folgendem Befehl auf:
TextOut(hdc, 1100, 50, (LPCWSTR)buffer_lX, sizeof(buffer_lX));Ich könnte natürlich auf den Integerwert abfragen. Sollte der Wert <10000 sein, ändere ich die Größe von 6 auf 5. Aber gibt es da nichts einfacheres?
-
TextOut(hdc, 1100, 50, (LPCWSTR)buffer_lX, sizeof(buffer_lX));
Falsch!
So wird das gemacht.
TextOut(hdc, 1100, 50, (LPCWSTR)buffer_lX, lstrlenW(buffer_lX));
-
Kaum macht man es richtig, klappts.

Danke -lowbyte-

Grüße
datatom