Fehler in Borland-Hilfe



  • Hallo,

    beim Kompilieren eines Beispiels aus der Borland-Hilfe erhalte ich die Fehlermeldung:
    E2034 Konvertierung von 'void *' nach 'unsigned char *' nicht möglich

    für nachfolgenden Ausdruck:

    ptr = pBitmap->ScanLine[y];
    

    Nachstehend der Originalcode aus der Hilfe.

    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
        Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
        // Dieses Beispiel zeigt das direkte Zeichnen auf die Bitmap
        Byte *ptr;
        try
        {
            pBitmap->LoadFromFile("C:\\testfeld\\Bilder\\factory.bmp");
            for (int y = 0; y < pBitmap->Height; y++)
            {
                ptr = pBitmap->ScanLine[y];
                for (int x = 0; x < pBitmap->Width; x++)
                    ptr[x] = (Byte)y;
            }
            Canvas->Draw(0,0,pBitmap);
    
        }
        catch (...)
        {
            ShowMessage("Could not load or alter bitmap");
        }
        delete pBitmap;
    }
    

    Was ist hier falsch?

    Gruß
    Leo



  • Hallo

    mach einfach einen cast :

    ptr = (unsigned char *) pBitmap->ScanLine[y];
    

    oder exakter

    ptr = reinterpret_cast<unsigned char *> (pBitmap->ScanLine[y]);
    

    bis bald
    akari



  • In der Hilfe zum BCB5/6 lautet die entsprechende Zeile

    ptr = (Byte *)pBitmap->ScanLine[y];
    

    Tip: auf der Borland Website mal nach aktualisierten Hilfedateien für die eigene Version umsehen oder ggf. dort die Version für BCB5 herunterladen.


Anmelden zum Antworten