Problemas JNA e JNI

Galera estou estudando a respeito do JNA e do JNI, até agora cheguei a conclusão que pelo JNA não vai ser possível o que quero fazer, estou desenvolvendo uma aplicação, que vai rodar no Windows Mobile com a J9 IBM, na verdade a aplicação está pronta falta agora a impressão, o que achei que seria a parta mais insignificante está dando dor de cabeça, pois o aparelho tem uma impressora embutida, única forma de acesso é via DLL.
Para se usar DLL de terceiros ou seja código totalmente nativo, nada de JNI, a melhor opção seria a JNA, perdi alguns dias para aprender, mas na hora de testar no aparelho a decepção, a JNA não da suporte a processadores ARM, então não poderei utilizá-la no meu PDA, acho que agora não tenho como fugir da JNI pura.
Gostaria de ajuda de vcs no esclarecimento de como utilizar a JNI para uma leitura de uma DLL totalmente nativa, ela não tem as chamadas dos métodos no padrão JNI, então como proceder em um caso destes?
Possuo a DLL de terceiro assim como a documentação desta DLL, com todos os métodos e parâmetros que devo passar.

Conto com o apoio de vcs.

Muito Obrigado!

Se você possui a documentação da dll então não terá problemas. Só precisa ter cuidado na hora de escolher os tipos de dados.
Por exemplo, um dword em c++, é um tipo de 32 bits não sinalizado, e você pode usar um int em java, porque também possui 32 bits. Para ponteiros, pode usar Object

O que causa dor de cabeça é não possuir documentação da dll, sendo necessário fazer engenharia reversa e desassembly.

Aqui tem um livro gratuito, muito útil. Tem tudo sobre jni.

http://java.sun.com/docs/books/jni/

Valeu pela ajuda, no meu caso a dll é em C# isso muda algo? pois tudo que eu estudei até agora é para dll em C ou C++, ai fiquei nesta duvida.

c# não vai funcionar, porque é outro tipo de assembler. JNI só funciona em código nativo. Essa dll c# deve precisar de outra dll nativa tmb.

Cara consegui fazer a JNA rodar no Windows mobile agora a duvida sabe se com a JNA posso usar uma dll em c#?

não vai porque JNI é somente pra código nativo. Assembly .Net é outra coisa.

Vixi entao vou ter que fazer uma gambiarra explicada aqui neste endereço vamos ver se funciona.

[quote=Shakall]Vixi entao vou ter que fazer uma gambiarra explicada aqui neste endereço vamos ver se funciona.
http://www.codeproject.com/KB/cross-platform/javacsharp.aspx[/quote]

Você viu a bagunça que vai ter que fazer? Vai ter que ter um mapeamento, para um mapeamento.

Não compensa mais usar c# nesse caso?

A aplicação é em java, só falta imprimir, e para isso preciso usar a dll, que foi criada em c#, fods

é cara que viajem.
Bom pelo o que eu entendi, preciso criar meu codigo fonte java, mais 2 codigos C++, onde o primeiro codigo vai acessar o segundo e o primeiro codigo é o codigo C++ preparado para a JNI, ele que será tranformado em uma dll acessivel pelo java, no segundo C++ é um codigo C++ normal, que faz uso da dll em C# do .net.

Java->JNI->C++ JNI(DLL)->C+±>DLL C#

E vamos que vamos!