umwandlung

masterjcl

Mitglied
Guten Tag ich habe ein kleines Problem mit einer funktionen

ich bekomme ein char**

und soll eine funktion mit const char* aufrufen

const char *utf


wie bekomme ich das hin


vielen Dank schonmal ist sicherlich ein klacks für euch !


jcl
 
Geht leider nicht hier noch mal ein wenig mehr background !


Ich habe einen sunrpc client programmiert dieser funktioniert und liefert ein string nach xdr beschreibung, macht daraus char**


Diesen kann ich mit

Code:
printf("%s\n",*variable);

ausgeben.

dieses array muss ich mit einer java gui verbinden
dazu muss ein UTF String erzeugt werden die Funktion hat folgende Parameter

Code:
jstring NewStringUTF(const char *utf)




hier noch mal die funktion im Detail




Code:
JNIEXPORT jstring JNICALL Java_de_sysint_ss04_client_SunWrapper_getAListe
  (JNIEnv * env, jobject obj){
  CLIENT *clnt;
  char * *result_1;
  char *rpccall_getaliste_1_arg;
  char * host ="localhost";

  clnt = clnt_create (host, RPC_IF, RPCIF_CALL, "udp");
        if (clnt == NULL) {
                clnt_pcreateerror (host);
                exit (1);
        }

  result_1 = rpccall_getaliste_1((void*)&rpccall_getaliste_1_arg, clnt);
        if (result_1 == (char **) NULL) {
                clnt_perror (clnt, "call failed");
        } else { printf("%s",*result_1); }

         jstring jmystr = env->NewStringUTF(env, *result_1);
  return jmystr;
  }


Der Sinn dieser Aufgabe -> es gibt keinen es ist ein Vergleich von jax-rpc und sun-rpc in einer lagerverwaltung, ich hab den jax kram aber schon fertig nur an dem sun mist fehlt noch. (nette Semesteraufgabe ohne Sinn und Verstand aber mich fragt ja keiner )

PS: ich habe dafür genau 8 Wochen Zeit inclusive Datenmodell Pozessmodellierung UML2 junit usw


thx
 
Code:
Server:~/sunrpc # ./doit.ee
de_sysint_ss04_client_SunWrapper.cpp: In function `_jstring*
   Java_de_sysint_ss04_client_SunWrapper_getAListe(JNIEnv*, _jobject*)':
de_sysint_ss04_client_SunWrapper.cpp:26: error: no matching function for call
   to `JNIEnv_::NewStringUTF(JNIEnv*&, char*&)'
/usr/lib/java/include/jni.h:1578: error: candidates are: _jstring*
   JNIEnv_::NewStringUTF(const char*)
 
Code:
de_sysint_ss04_client_SunWrapper.cpp:26: error: no matching function for call
   to `JNIEnv_::NewStringUTF(JNIEnv*&, char*&)'
/usr/lib/java/include/jni.h:1578: error: candidates are: _jstring*
   JNIEnv_::NewStringUTF(const char*)
RedWing hat gesagt.:
Da stimmt was mit deiner Parameteranzahl nicht...

Was bringt er denn für Fehler?

Tut es denn ein einfaches:

Code:
jstring jmystr = env->NewStringUTF((const char*)*result_1);



nicht?

Du übergibst der Funktion noch ein Objekt vom Typ JNIEnv*& für diesen
Parameter und diese Parmeteranzahl ist die Funktion aber gar nicht
definiert...
Gruß

RedWing
 
ich bin ein bischen blöde den Fehler habe ich schon am Anfang ein paar mal gemacht die env umgebungsklasse wird in den neuen versionen schon intern übergeben.


jetzt geht es vielen dank


ps wer lesen kann ist klar im vorteil(rtfm)

nach dem Frust hatte ich auch schon 1 1/2 Flaschen Wein intus
 

Neue Beiträge

Zurück