Was passiert da?
-
Hallo!
Kann mir einer erklären, was da passiert?
int wert = GetDeviceCaps(Printer()->Handle, RASTERCAPS); //verstehe ich (wert = 28315) int wert2 = wert &RC_BITBLT; //Das versteh ich nicht! (wert2 = 1)
Was ist RC_BITBLT?
Das steht in der SDK Hilfe ( zu GetDeviceCaps() ):
RASTERCAPS Value that indicates the raster capabilities of the device, as shown in the following table:
Capability Meaning
RC_BANDING Requires banding support.
RC_BITBLT Capable of transferring bitmaps.
RC_BITMAP64 Capable of supporting bitmaps larger than 64K.
RC_DI_BITMAP Capable of supporting the SetDIBits and GetDIBits functions.
RC_DIBTODEV Capable of supporting the SetDIBitsToDevice function.
RC_FLOODFILL Capable of performing flood fills.
RC_GDI20_OUTPUT Capable of supporting features of Windows 2.0.
RC_PALETTE Specifies a palette-based device.
RC_SCALING Capable of scaling.
RC_STRETCHBLT Capable of performing the StretchBlt function.
RC_STRETCHDIB Capable of performing the StretchDIBits function.Mehr kann ich dazu nicht finden.
????????
-
wahrscheinlich weißt du nicht was der &-Operator (bitweises AND-Operator) macht...
wenn du binär zB hast
01010101
und
01110001
dann werden wenn man diese Werte mit & verknüpt im Ergebnis alle Bits gesetzt die bei beiden Operanden 1 waren (wenn einer oder beide Operanden ne 0 bei nem Bit haben, ist das Ergebnis-Bit 0)
das Ergebnis von oben mit & wäre also:
01010001
ok, soweit die Theorie...
in dem konkreten Fall wird diese TEchnik eingesetzt um wert2 auf 0 zu sezen wenn das BIT das bei RC_BITBLT gesezt ist bei wert nicht gesetzt ist, andernfalls wird wert2 ungleich 0 (und wird dann als TRUE eingesetzt-> der Printer ist fähig eine bestimmte Sache zu machen)
edit: RC_BITBLT ist ein Flag, eine Konstante bei der ein einziges Bit gesetzt ist(die mit & oder | - Operator dann ausgewertet kann)
[ Dieser Beitrag wurde am 19.02.2003 um 11:51 Uhr von crass editiert. ]
-
Danke crass!
Bei dem Operator & Denke ich immer an Speicheradresse....
Schade nur das die Handhabung aus der SDK-Hilfe nicht hervorgeht. Oder könntest Du das aus der Hilfe erlesen?
Wenn ja, wie?
Danke
[ Dieser Beitrag wurde am 19.02.2003 um 14:15 Uhr von Funky editiert. ]