Uhrzeit wird als kryptische Zeichen ausgegebn im Fenster
-
Im originalen Projekt sind UNICODE und _UNICODE definiert. Dann vertragen sich die Funktionen natürlich nicht mehr char. Und genau deswegen ist Mr. Ns Beitrag kein Quatsch. Zusätzlich muß aber noch aus char TCHAR werden und aus strlen wird _tcslen.
BTW: Ein Aufruf von InvalidateRect hat in WM_PAINT nichts zu suchen.
-
Original erstellt von -King-:
**Im originalen Projekt sind UNICODE und _UNICODE definiert. Dann vertragen sich die Funktionen natürlich nicht mehr char. Und genau deswegen ist Mr. Ns Beitrag kein Quatsch. Zusätzlich muß aber noch aus char TCHAR werden und aus strlen wird _tcslen.BTW: Ein Aufruf von InvalidateRect hat in WM_PAINT nichts zu suchen.**
Wo sind im Programm UNICODE und _UNICODE definiert. Hab das Programm aus einem Buch abgetippt und wollte es dann verändern. Wenn ich die gesagten Sachen veränder mit char und THCAR und _tcslen zeigt er trotzdem noch Müll an.
-
Wo sind im Programm UNICODE und _UNICODE definiert.
Gar nicht. Das habe ich auch nie behauptet, ich schrieb Projekt. Und in den Einstellungen kannst Du das dann sehen.
Hab das Programm aus einem Buch abgetippt und wollte es dann verändern.
Das glaub ich Dir nicht. Du hast das nicht abgetippt, sondern einfach das Projekt und den Quelltext von der CD übernommen. Und ich weiß, daß Petzold in den Debug-Builds UNICODE enabled hat.
Wenn ich die gesagten Sachen veränder mit char und THCAR und _tcslen zeigt er trotzdem noch Müll an.
Bekommst Du noch weitere Warnungen?
[ Dieser Beitrag wurde am 25.05.2003 um 15:19 Uhr von -King- editiert. ]
-
Ich hab gar keine CD zu dem Buch und ich bekomme noch zwei Warnungen:
(65) : warning C4133: 'function' : Inkompatible Typen - von 'char [9]' zu 'const unsigned short *'
(76) : warning C4013: '_tcslen' undefiniert; Annahme: extern mit Rueckgabetyp int
[ Dieser Beitrag wurde am 25.05.2003 um 15:46 Uhr von 0x0000F editiert. ]
-
(65) : warning C4133: 'function' : Inkompatible Typen - von 'char [9]' zu 'const unsigned short *'
Und welche Zeile ist das? Was steht da?
(76) : warning C4013: '_tcslen' undefiniert; Annahme: extern mit Rueckgabetyp int
Du hast <tchar.h> nicht inkludiert.
-
static RECT rect ; TCHAR uhrzeit[30]; HDC hdc ; PAINTSTRUCT ps ; SYSTEMTIME systime; GetLocalTime(&systime); wsprintf(uhrzeit, "%02d:%02d:%02d",systime.wHour,systime.wMinute,systime.wSecond);//<-----65) : warning C4133: 'function' : Inkompatible Typen - von 'char [15]' zu 'const unsigned short *' switch (message) { case WM_CREATE : return 0 ; return 0 ; case WM_PAINT : hdc = BeginPaint (hwnd, &ps) ; TextOut (hdc, 100,100,uhrzeit, _tcslen(uhrzeit));//<-----(76) : warning C4133: 'function' : Inkompatible Typen - von 'unsigned short [30]' zu 'const char *' EndPaint (hwnd, &ps) ; return 0 ;
Ich hab jetzt <tchar.h> eingebunden.
[ Dieser Beitrag wurde am 25.05.2003 um 16:00 Uhr von 0x0000F editiert. ]
-
Das ist doch das, was Mr. N bereits gesagt hat. Das muß so aussehen:
wsprintf(uhrzeit, TEXT("%i:%i:%i"), 10,20,30);
[edit]
Ich habe eben erst gesehen, daß die zweite Warnung nun eine ganz andere ist. Das liegt daran, daß Du zwar UNICODE definiert hast, nicht aber _UNICODE.
[/edit][ Dieser Beitrag wurde am 25.05.2003 um 16:05 Uhr von -King- editiert. ]
-
Original erstellt von -King-:
**Das ist doch das, was Mr. N bereits gesagt hat. Das muß so aussehen:wsprintf(uhrzeit, TEXT("%i:%i:%i"), 10,20,30);
**
Ja stimmt hab ich vergessen, dann bekomme ich nur noch diesen einen Fehler
TextOut (hdc, 100,100,uhrzeit, _tcslen(uhrzeit)); //<--- (76) : warning C4133: 'function' : Inkompatible Typen - von 'unsigned short [30]' zu 'const char *'
-
Habe ich jetzt ach gesehen. Siehe edit des anderen Beitrags.
-
Original erstellt von -King-:
Habe ich jetzt ach gesehen. Siehe edit des anderen Beitrags.Jo jetzt läuft es wie es soll. Danke das du dir die Zeit genommen hast das so zu
analysieren.Hab davor nur Java programmiert deshablb muss mich erstmal mit VC++ und seinen Funktionen und Einstellungen vertraut machen.