JavaNative



  • Hallo

    Ich habe folgendes Phänomen wenn ich versuche jstring in chars zu konvertieren.

    ich habe das beispiel von der Sun-seite genommen und versucht es bei mir einzubinden. aber ich bekomme folgende fehlermeldung:

    Codebeispiel

    lMsg = (*env)->GetStringUTFChars(env,msg,0);
    

    error C2819: type 'JNIEnv_' does not have an overloaded member 'operator ->'
    c:\programme\java\j2sdk1.4.2_04\include\jni.h(750) : see declaration of 'JNIEnv_'
    left of '->GetStringUTFChars' must point to class/struct/union

    wenn ich es allerdings so einbinde, dann bekomme ich vom compiler (MVisual C++)
    keine fehlermeldung. allerdings stürzt das programm, dann in der DLL an dieser stelle ab.

    lMsg = env->GetStringUTFChars(msg,0);
    

    Woran liegt das, dass ich einen parameter weniger übergeben kann?



  • Servus,

    also ich habe zwar selten mit native Methoden in Java zu tun und ich könnte mich mich auch täuschen, aber dass hier:

    hi schrieb:

    lMsg = (*env)->GetStringUTFChars(env,msg,0);
    

    sieht mir nicht nach korrektem Code aus.

    Vielleicht so:

    lMsg = env->GetStringUTFChars(env, msg, 0);
    


  • Yo, entweder env->XXX oder das, was der -> Operator ja auch genau macht: (*env).XXX 👍


Anmelden zum Antworten