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. ]


Anmelden zum Antworten