Acho que a melhor maneira e' voce fazer um wrapper em C para as funcoes de
callback. Assim, voce passa para a api da dll um ponteiro para uma funcao em C,
que simplesmente chama um metodo Java.
Na verdade, acho que nao existe outro meio de se implementar isso, pois para a
dll chamar a funcao de callback, tambem e necessario faze-lo atraves da JNI.
Uma outra alternativa e' acessar diretamente o dispositivo de leitura, se o
protocolo de comunicacao nao for muito complexo, e o dispositivo estiver
conectado numa porta serial ou paralela. Usando a Communications API, isso e'
mais facil do que pode parecer. Eu fiz um programinha para acessar uma
impressora termica, daquelas de shopping centers.
> Date: Tue, 19 Jan 1999 14:29:57 -0200
> From: Frederico Charles Simplicio Faria <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: Re: Endere�os de m�todos em Java como obt�-los???????
>
>
>
> F&G escreveu:
>
> > 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 ?
>
>
> A especifica��o JNI fornece uma API para invocar metodos de Java em
> c�digo nativo. Agora � claro
> que n�o � poss�vel gerar a partir de um m�todo nativo a assinatura para
> um m�todo Java. Imagine se a Sun
> tivesse que se ocupar com gera��o de assinatura para toda linguagem
> nativa ?!
>
> Te,
>
> Fred.
>
>
--
Eduardo Issao Ito <[EMAIL PROTECTED]>
System Engineer, Sun do Brasil
Tel. 5181-8988 ext 58291
"More computing sins are committed in the name of efficiency (without
necessarily achieving it) than for any other single reason - including blind
stupidity."
- W.A. Wulf
* Para nao receber mais e-mails da lista, acesse
<http://www.sun.com.br:8080/guest/RemoteAvailableLists>, coloque seu e-mail, escolha a
lista <[EMAIL PROTECTED]> e de um <submit>.
=?ISO-8859-1?Q?Re:_Endere=E7os_de_m=E9todos_em_Java_como_obt=EA-?==?ISO-8859-1?Q?los????????=
Eduardo Issao Ito - SE Trainee - Sun do Brasil Tue, 19 Jan 1999 11:47:40 -0500
