fehler



  • hallo

    kann mir mal jemand folgende fehlermeldung erklären

    error C2664: 'CallStaticDoubleMethodA' : Konvertierung des Parameters 3 von 'double' in 'union jvalue *' nicht moeglich
    Es gibt keinen Kontext, in dem diese Konvertierung moeglich ist

    also jvalue sieht folgender massen aus. wie muss ich es machen damit ich einen double übergeben kann?

    typedef union jvalue {
        jboolean z;
        jbyte    b;
        jchar    c;
        jshort   s;
        jint     i;
        jlong    j;
        jfloat   f;
        jdouble  d;
        jobject  l;
    } jvalue;
    


  • ich habe mal jni gemacht im c style (nicht c++)

    du kannst einfach casten

    z.B.
    return (jint) len;

    wenn len ein int war.

    in c++ dann analog die neuen casts ... static cast..

    ps: da ist aber ein pointer, der erwartet wird...

    [ Dieser Beitrag wurde am 30.03.2003 um 14:53 Uhr von elise editiert. ]



  • ps: da ist aber ein pointer, der erwartet wird...
    und genau da liegt mein problem ich sehe nicht wie ich mein double wert dort übergeben kann

    die methode sieht folgender massen aus:

    jdouble res = env->CallStaticDoubleMethodA(jclass,jmethodID,jvalue);

    wie kann ich mein double wert dem jvalue übergeben?



  • problem gelöst
    danke



  • union jvalue {
        jboolean z;
        jbyte    b;
        jchar    c;
        jshort   s;
        jint     i;
        jlong    j;
        jfloat   f;
        jdouble  d;
        jobject  l;
    
        operator double* ()
        {
           return &d;
        }
    };
    

    😉


Anmelden zum Antworten