Bom dia, galera estou com uma dúvida se alguém puder me ajudar agradeço…
eu tenho uma variável em c++
unsigned char m_EnrollTemplate[ TEMPLATE_COUNT ][ DEXSF_TEMPLATESIZE ];
como faço para retornar esses valores no método usando JNI é algum tipo especial que devo retornar, não estou conseguindo fazer o retorno dessas informações…
[]'s Alberto
Um array bidimensional de bytes deve ser transferido da aplicação C++ para a aplicação Java como um array unidimensional de bytes (byte[]). O tamanho desse array seria TEMPLATE_COUNT * DEXSF_TEMPLATESIZE. A aplicação Java deve se virar para interpretar esse array unidimensional como um array bidimensional.
Obrigado pela resposta rápida, como seria o tipo do atributo no Java:
public native byte[] DEXSFEnroll();
isso está certo ?
e no C++ eu fiz apenas um casting, será que posso fazer isso ou tem outra forma para transformar o minha variável unsigned char para um tipo byte[]?
o casting eu fiz assim
(jbyteArray)m_EnrollTemplate
[]'s e obrigadoo
Você precisa criar uma variável do tipo byte[]; não é suficiente usar um casting. Para fazer isso, você precisa usar o método NewByteArray, e a seguir usar o método SetByteArrayRegion. Veja em:
http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jnistring.html
nossa muito obrigado estarei a ler o que você passou…
[]'s e valeu mesmo