Fehlermeldung - voidpointer



  • Hallo zusammen,

    und zwar krieg ich die folgende Fehlermeldung mit der ich nichts anfangen kann:

    argument of type "void ()()" is incompatible with parameter of type "void

    Der Prototyp der Funktion sieht wie folgt aus:

    I32 BayerToYCbCr (image *bayer, image *ycbcr)
    

    wobei image eine Struktur ist.

    Vielen Dank!



  • Fehlermeldung:
    argument of type "void ()()" is incompatible with parameter of type "void ()() C"

    (oben etwas abgeschnitten)



  • Poste bitte den richtigen Code damit wir die Fehlermeldung auch nachvollziehen können.
    Da ist nirgendwo ein Funktionszeiger, ergo kann der Fehler dort auch nicht auftreten. 😉

    Und die Fehlermeldung sieht auch komisch aus, sicher dass die so richtig ist ?



  • Ja leider schon 😕

    image area, ycbcr;      //Image is a struct
    int err;
    
    U8 *image_jpg; 
    U8 *addr;
    
    U8 * addr_U8 = (U8*)sysmalloc(400000,MDATA);
    
    if(addr_U8 == NULL) print("Memory U8 allocation failed\n");
    else print("Memory U8 allocated \n");
    
    /* working page = physical page */   
    ScrSetLogPage(ScrGetPhysPage);
    ImageAssign(&area,ScrByteAddr(0,0), ScrGetColumns, ScrGetRows, ScrGetPitch); 
    
    //COLOR IMAGE//
    ImageAllocate(&ycbcr, IMAGE_CBCR444, 640, 480);
    ycbcr.pitch=ScrGetPitch;
    
    vmode(vmLive);        // set video mode (live video + cyclic image acquisition)
    print("Get image and calculate the sum of it. Press any key\n");
    
    rs232rcv();           /* wait for any key */
    tpict();              // take picture, stored in area
    
    area.type=BAYER; //setting Bayer pattern
    print("Type of image: %i \n",area.type);
    print("Memory req.: %i \n",(area.dy*area.pitch));
    
    BayerToYCbCr(&area, &ycbcr); 
    // ...
    

    http://www11.pic-upload.de/01.09.14/ep67d6hq4x.jpg



  • Ich habe das Gefühl das es etwas damit zutun hat das die Lib für C geproggt wurde (eigentlich auch für C++ zugelassen) aber ich sie im C++ verwende.

    Sowas in der Art:
    http://stackoverflow.com/questions/24062583/extern-c-null-function-pointer

    Jemand eine Idee?

    Gruß



  • OK hab folgendes in der lib gefunden:

    (In der Doku stehts nicht drin das es ein #define ist 👎 )

    void StoreYCBCR        (U8 *Red, U8 *Green, U8 *Blue, I32 Line, I32 dx, image *YCBCR);
    //..
    #define BayerToYCbCr(bayer, ycbcr)		    	BayerToRGB_5x5(bayer, ycbcr, NULL, (void *(*)())StoreYCBCR)
    

    Gruß 🙂



  • trick123 schrieb:

    Ich habe das Gefühl das es etwas damit zutun hat das die Lib für C geproggt wurde (eigentlich auch für C++ zugelassen) aber ich sie im C++ verwende.

    Halte ich führ unwahrscheinlich.

    trick123 schrieb:

    void StoreYCBCR        (U8 *Red, U8 *Green, U8 *Blue, I32 Line, I32 dx, image *YCBCR);
    //..
    #define BayerToYCbCr(bayer, ycbcr)		    	BayerToRGB_5x5(bayer, ycbcr, NULL, (void *(*)())StoreYCBCR)
    

    Der Cast ist mir auch sehr suspekt... 😮
    Und die Fehlermeldung auch...
    Gib mal die Signatur von "BayerToRGB_5x5".



  • I32 BayerToRGB_5x5(image *bayer, image *rgb, image *ovl, void *(*function)());
    

    So sieht die Funktion aus.

    Habe es nun folgendermaßen gemacht:

    extern "C"                       
    {
        typedef void * (*store)(void);
    }
    //...
    BayerToRGB_5x5(&area, &ycbcr, NULL, (store)StoreYCBCR);
    

    So nun kriege ich beim kompilieren keinen Fehler mehr aber zur Runtime 😕 😃

    Gruß



  • [quote="DarkShadow44[/quote]Halte ich führ unwahrscheinlich.

    quote]

    Letzer Absatz:
    http://docs.oracle.com/cd/E19059-01/wrkshp50/805-4956/bajdcjch/index.html



  • trick123 schrieb:

    extern "C"                       
    {
        typedef void * (*store)(void);
    }
    //...
    BayerToRGB_5x5(&area, &ycbcr, NULL, (store)StoreYCBCR);
    

    So nun kriege ich beim kompilieren keinen Fehler mehr aber zur Runtime 😕 😃

    Hm, scheint man wohl tatsächlich so zu machen, hab ich ja noch nie gehört dass extern "C" auch Zeiger betrifft. 😮

    Und was für Fehler treten zur Laufzeit auf ?



  • Hi,

    “Undefinde external symbol !!!”
    “fatal error, can’t load program – fd:Streaming.exe”

    Der Feher sieht so aus. Muss dazu sagen das es eine Software für eine Kamera ist.

    Gruß


Anmelden zum Antworten