http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jnistring.html#string
The
String object in the Java language, which is represented as jstring in Java Native Interface (JNI), is a 16 bit unicode string. In C a string is by default constructed from 8 bit characters. So, to access a Java language String object passed to a C or C++ function or return a C or C++ string to a Java language method, you need to use JNI conversion functions in your native method implementation.Después de ver el código del traductor que utilizamos, nos hemos dado cuenta de que no hace nada de esto.
Procedemos a efectuar los siguientes cambios en las clases traduce.h y traduce.cpp que son las que nos dan problemas:
En la clase traduce.h intercambiar la línea de arriba por la de abajo:
JNIEXPORT jint JNICALL Java_com_traductor_lse_Traduciendo_Traduccion(JNIEnv *env, jobject obj, char *origen, char *destino);
JNIEXPORT jint JNICALL Java_com_traductor_lse_Traduciendo_Traduccion(JNIEnv *env, jobject obj, jcharArray origen, jcharArray destino);
Además habría que cambiar el método traduccion (el que nos da el problema en Java) de la clase traduce.cpp:
jcharArray origen --> char *origen
jcharArray destino --> char *destino
***Lo que haya en traduccion***
char *destino --> jcharArray destino
Con estos cambios esperamos solucionarlo.
No hay comentarios:
Publicar un comentario