Boa tarde a todos.
Eu estou construindo uma aplicação que usa o JNA para acessar duas funções em C. Uma das funções retorna uma estrutura para o JAVA, que vai armazenando essas estruturas numa List e depois as transforma num
Array de Estruturas. Esse array de estruturas deve ser passado para a minha função em C.
//Função no C
int identificar_digital(struct fp_print_data* galeria[]) {
fflush(stdout);
size_t *offset;
int r;
fp_dev = discovered_devs....
//....Muito código aqui...
//Solicita um scan e tenta identificar a
//digital, retornando o índice no vetor
//em que a digital está.
r = fp_identify_finger(fpdev, galeria, &offset);
if (r == FP_VERIFY_MATCH) {
fflush(stdout);
printf("\n\tDedo escaneado com sucesso");
fflush(stdout);
r = offset;
} else {
fflush(stdout);
printf("\n\tNão foi possível escanear imagem");
fflush(stdout);
r = -1;
}
return r;
}
Passando o array de estruturas
public interface LeitorLibrary extends Library{
/**Chama identificar_digital e passa um array de digitais**/
public int identificar_digital(LeitorBiometricoStructurePrintData[] digitais);
}
Lógico que tem mais um monte de classe no projeto, mas ficaria um tempão passando pra cá. Mas o prinicpal problema é:
- Eu crio um array de estruturas, passo pro C, que recebe bonitinho, mas depois do scan ( r = fp_identify_finger(fpdev, galeria, &offset)) a aplicação quebra.
Creio que o erro esteja no parâmetro recebido pela função em C (struct fp_print_data* galeria[]), pois talvez não deva ser declarada dessa forma, porém segui o exemplo da API do JNA.
Alguém já passou problema parecido?