WIEDERMAL Fehler im Buch ?
-
Compilermund tut Wahrheit kund.
-
Ok! da is ein komma, ich hab das aber im Listing drin! es geht trotzdem nicht!
schau dir mal die Fehlermeldungen an...bei der Zeile:
hBrushalt = SelectObject (hdc, hBrush); hPenalt = SelectObject (hdc, hPen);
und die steht wirklich so im Buch!
kommt die Fehlermeldung:
invalid conversion from `void*' to `HBRUSH__'
invalid conversion from `void' to `HPEN__*'__ __
(übrigens ich hab tatsächlich schon listings in Büchern gesehen wo ; gefehlt hat )
-
Du musst den Rückgabewert von SelectObject auf HBRUSH bzw. HPEN casten.
Was ist mit den beiden Zeilen:
SelectObject (hPen);
SelectObject (hBrush);Stehen die so im Buch?
-
oops! statt:
SelectObject (hdc, hBrushalt);
SelectObject (hdc, hPenalt);
SelectObject (hPen);
SelectObject (hBrush);
EndPaint (hWnd, &ps);
return 0;steht:
SelectObject (hdc, hBrushalt);
SelectObject (hdc, hPenalt);
DeleteObject (hPen);
DeleteObject (hBrush);
EndPaint (hWnd, &ps);
return 0;aber der Fehler wird immernoch angezeigt:
invalid conversion from `void*' to `HBRUSH__'
invalid conversion from `void' to `HPEN__*'
[Build Error] [w1.o] Error 1WAS HEIßT CASTEN?? erklär mal bitte den Begriff, davon ist hier im Buch noch nicht die Rede gewesen..
-
Das Problem ist, der Code ist C, du versuchst aber als C++ zu kompilieren. Entweder die Casts einfügen oder ein C-Projekt (wenn dass denn geht) erstellen.
-
ok C-project einfach
#include <conio.c>
oder ???
in nem anderen Forum sagt jemand was von STATIC_CAST !
wie geht das? kleiner Tip? den rest knoble ich mir schon aus...cayamides
-
DrGreenthumb schrieb:
Das Problem ist, der Code ist C, du versuchst aber als C++ zu kompilieren. Entweder die Casts einfügen oder ein C-Projekt (wenn dass denn geht) erstellen.
Das Buch heißt immerhin "WINDOWS PROGRAMMIEREN mit C++ "...
-cayamides- schrieb:
WAS HEIßT CASTEN?? erklär mal bitte den Begriff, davon ist hier im Buch noch nicht die Rede gewesen..
Casten ist eine explizite Typumwandlung. Da gibt es verschiedene, du brauchst hier vermutlich reinterpret_cast:
hBrushalt = reinterpret_cast<HBRUSH>(SelectObject (hdc, hBrush)); hPenalt = reinterpret_cast<HPEN>(SelectObject (hdc, hPen));
Ich rate dir aber dringend, dich erst mit den C++-Grundlagen vertraut zu machen, bevor du mit Windows-Programmierung anfängst.
-
Mir drängt sich der Verdacht auf das sich das alles vonselbst erledigt wenn du den abgetippten Quelltext mit dem Original solange vergleichst bis du dein Leben für die Aussage "der ist Fehlerfrei" riskieren würdest.
Und casten heisst aus Typ A einen Typ B zu 'zaubern' in der Form
typ_b var1;
typ_a var2 = (typ_a)var1; bzw
typ_a var2 = static_cast<typ_a>(var1);*edit* oops genau falschrum
-
MFK schrieb:
DrGreenthumb schrieb:
Das Problem ist, der Code ist C, du versuchst aber als C++ zu kompilieren. Entweder die Casts einfügen oder ein C-Projekt (wenn dass denn geht) erstellen.
Das Buch heißt immerhin "WINDOWS PROGRAMMIEREN mit C++ "...
Oh, schöne Verarsche.
-
DANKE MFK!!!!
@ dreaddy! es war doch ein Fehler im Buch (*bäh*)
nachdem ich die Zeilen:
hBrushalt = SelectObject (hdc, hBrush);
hPenalt = SelectObject (hdc, hPen);mit dem Vorschlag von MFK ersetzt hab:
hBrushalt = reinterpret_cast<HBRUSH>(SelectObject (hdc, hBrush));
hPenalt = reinterpret_cast<HPEN>(SelectObject (hdc, hPen));läufts Prima!!!!
Danke nochmal an alle (und sorry für die zwei Fehler im Listing)gruß CAYAMIDES