Galera seguinte estou desenvolvendo uma aplicação para RFID, temos uma placa aqui que trabalha com a leitura, temos a DLL dela e documentação.
Problema é que eu consigo carregar a DLL e tal, mas quando tento chamar qualquer metodo da DLL da o seguinte erro:
Exception in thread “main” java.lang.UnsatisfiedLinkError: totalseg.Main.KernelLastError()I
nao sei se aforma como a DLL foi criada influencia na forma que ela será acessada, mas ja vi que uma DLL pode ser feita varias formas e com varias linguagens, mas essa aqui foi no activex
o codigo da classe tentando acessar com JNI está logo abaixo:
public class Main {
/**
* @param args the command line arguments
*/
public static native String ListaPortasSeriais();
public static native int KernelLastError();
static{
System.loadLibrary("Kernel7x");
}
public static void main(String args[]){
Main m = new Main();
m.ListaPortasSeriais();
}
}
o nome do metodo nativo nao esta errado, abaixo esta parte da documentação que fala do metodo:
ListaPortasSeriais: WideString;
Esta propriedade retorna uma string com as portas COM encontradas na máquina, por
exemplo para COM1 e COM2 retorna: ?COM1-COM2?.
é uma metodo que nao reque passagem de parametros
resumindo ele consegue executar o loadlibrary, mas nao executa metodos da DLL, nao consigo entender pq?