Parâmetros e retorno em JNI

2 respostas
U

Pessoal, é o seguinte:

Preciso escrever uma função pra JNI que acesse um vetor. Tal função é acessada da seguinte forma:

calculo(vetor,tamanhoMaximo,vetorRetorno, &dados);

Após acessar o vetor a função me retorna um vetor resultado e alguns dados sobre esse vetor em uma struct que possui 3 variáveis do tipo double (dados).

Em C++ o vetor de retorno e os dados são passados como referência, porém em Java não consigo visualizar a solução para o problema, como acessar o vetor retornado e ao mesmo tempo a struct de dados?

2 Respostas

M

Esse método em C++ está em uma biblioteca? Talvez seja interessante usar JNA no seu caso. Você pode postar a assinatura completa do método ‘calculo’?

U

Bem, ja evolui bastante na resolução do problema e o que resta resolver é o seguinte:

O meu método calculo esta recebendo um objeto Java que contem um vetor de bytes e um valor inteiro:

calculo(JNIEnv *env, jobject obj, jint x);

na função da JNI preciso acessar os 2 valores, o valor inteiro estou acessando da seguinte forma:

jfieldID areaID   = env->GetFieldID(class,"area","D");

então eu manipulo esse valor e retorno à classe java da seguinte forma:

double area = x*2; env->SetDoubleField(obj, areaID, area);

O que preciso é saber como faço a mesma coisa pra um vetor de bytes, como leio e retorno pro objeto o vetor inteiro??

Criado 3 de janeiro de 2011
Ultima resposta 3 de jan. de 2011
Respostas 2
Participantes 2