Fala pessoal,
o problema é o seguinte…dentro de um metodo “.cpp” que implementa um metodo java nativo atraves da tecnologia JNI, eu chamo outro método. Este outro metodo tem como argumentos um tipo WORD e DWORD que são do c, mas não possuem correspondente no java, o que faço? quando for chamar este metodo passo para ele uma jstring? Outra dúvida seria quando no mesmo metodo eu tenho um argumento que é um ponteiro, ou seja, um endereço. Eu tenho que passar este argumento do java para este método nativo…mas como se o java não aceita ponteiros?
bem…não sei se fui bem claro…mas logo abaixo eu ilustro os métodos:
Método c a ser chamado dentro de algum metodo JNI:
WORD P1602_Di (WORD *wDi, WORD wa);
Metodo JNI:
JNIEXPORT jstring JNICALL Java_TesteDll_P1602_1Di (JNIEnv *env, jobject obj, jobjectarray jwDi,jstring jwa){
jstring x = P1602_Di(jwDi,jwa);
return x;
}
Dentro do java eu tenho que passar os Argumentos " WORD *wDi " e " WORD wa " para que eu possa chamar o metodo " P1602_Di ". então eu tenho o metodo java:
public native ? P1602_Di (? wDi, ? wa);
o que colocar no lugar de “?” já que não posso usar WORD, DWORD ou ponteiros? no exemplo eu mapeei WORD e DWORD para String e o ponteiro para um Vetor de Strings. está certo?