Bem pessoal, eu gosto de Java e eu gostaria desenvolver qualquer tipo de aplicação para qualquer plataforma utilizando esta linguagem. Apesar de eu conhecer C e C++ acho Java menos carregada sintaticamente do que estas linguagens.
 
Nesta semana eu estou tendo uma experiência bastante interessante. Um (futuro) cliente quer desenvolver aplicações para plataforma windows de um dispositivo para leitura de de impressões digitais. O fabricante do equipamento fornece um sdk que são dlls para desenvolever tais aplicações.
Portanto, se eu for usar Java, terei que implementar métodos nativos para chamar as funções desta dll. O problema é que algumas das funçoes são utilizadas para passar funções de "call Back".
Resumindo, eu terei que passar  o endereço de um método em Java ( a função de call back). Como obter o endereço de um método definido em Java ?
 
Quando se pensa em métodos nativos é sempre no sentido de implentar um método de Java em C. O problema inverso , isto é, é dada uma função  C e se deseja chamá-la através de um método (estático) não é enfatizado.
 
Por exemplo digamos que nesta  dll tenha uma função cujo protótipo seja
 
                                      int * f(int * a);
 
Como seria  assinatura do corresponderte método estático nativo em Java ?
 
Digamos que nesta dll tenha uma estrutura por exemplo:
 
        typedef  void (*FUN)(int);
 
      struct qualquer {
                               FUN x;
                            };
 
Como seria a correspondente classe em Java ?
 
 
                               

Responder a