Estou precisando acessar uma dll simples que ao enviar um determinado número, ela retorna a valor enviado subtraido 1.
O código que preparei foi o seguinte:
public class AcessoJNI
{
public AcessoJNI()
{}
public int subtraiContador(int contador)
{
return(SubtraiContador(contador));
}
public native int SubtraiContador(int contador);
static
{
System.loadLibrary("itLog");
}
}
A dúvidas são:
Para que a classe java acesse o arquivo itLog.dll, é necessário criar o .h e .c da classe java? Pois todos os exemplos que vi na net referen-se a criação da dll a partir da própria classe, e não simplesmente acessá-la.
Caso tenha a necessidade de criar a base em c, é obrigatório anexar o .h da dll para criação do .c ?
Você deve usar javah para criar o arquivo header do programa em C que quer acessar. Se for uma DLL já pronta faça um programinha em C para acessa-la. Siga exatamente este roteiro
Eu acesso uma dll(Objecto COM) feito em delphi com o Java COM Bridge(JACOB) sem precisar de nada em C. Não sei se é o seu caso, mas talvez valha a pena dar uma olhadinha.
Mesmo para o caso de uma DLL já pronta, há necessidade de se passar por todos esses passos novamente?
Além disso, é necessária realizar toda a codificação para realizar esta tarefa?
Usando JNI é preciso seguir o roteiro. Se vc vai desenvolver a DLL pode usar os headers criados pelo javah. Mas se vai usar uma DLL já pronta precisa fazer um método em uma linguagem (C por exemplo) que consiga acessar direto a DLL e chamar este método pelo Java.
Com Jacob sei que a coisa é diferente mas nunca usei.