Problem mit Datentyp in C/C++ und JNI

  • Ich habe eine DLL, die ich über Java ansprechen will. Dazu muss ich mir dieses schöne JNI-Zeugs basteln. Das funktionierte bei der alten Version der DLL ganz gut, jetzt hab ich aber ne neue Version, wo ein 32bit Integer-Array übergeben werden soll. Da hauts mich jetzt mit den Datentypen auf, nochdazu bin ich in C/C++ nicht wirklich sattelfest.

    Bei Kompilieren des VS-Projekts komm ich zu dieser Fehlermeldung:

    Zitat

    error C2664: 'void (PUINT)': Konvertierung des Parameters 1 von 'jintArray' in 'PUINT' nicht möglich

    Konkret geht es dabei um diesen Teil:

    Code
    JNIEXPORT void JNICALL Java_DMX_DMXController_setAllData(JNIEnv *env, jobject c, jintArray data)
    {
        theApp.SetAllData(data);
    }

    SetAllData wird im Header-File so definiert (wobei ich eben den richtige Datentyp nicht weiß):

    Code
    typedef void (__stdcall *PFNSETALLDATA)(PUINT dwData);

    Die vorige Methode nahm einfach nur einen long Typ, das wurde einfach mit DWORD definiert, aber bei dem hier weiß ich nicht weiter, auch das JNI Handbuch hilft mir nicht weiter :(


    EDIT: Konnte es doch lösen:

    Wieder was gelernt ;)

    3 Mal editiert, zuletzt von Stephe (23. April 2009 um 20:31)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!