Erro Acessando DLL

1 resposta
L

Pessoal,

Tenho uma DLL que foi feita em C e cujo o source eu nao tenho
so tenho o cabeçario, ou seja, o arquivo .h

Entao escrevi uma classe para fazer alguns testes
public class Teste {

private static native int PP_iOpen();

public static void main(String[] args) {
        
	System.loadLibrary("ppsetis");
   int teste =  PP_iOpen();
 }

}

E estah me dando o seguinte erro

java.lang.UnsatisfiedLinkError: PP_iOpen

at Teste.PP_iOpen(Native Method)

at Teste.main(Teste.java:10)

Exception in thread main

a chamada da função no cabeçario estah
Int16 PPEXPORT PP_iOpen (void);

Alguem ja passou por isso??

Positive Vibrations

1 Resposta

V

igferst,

não eh toda DLL que funciona com Java, as DLLs feitas para funcionar com Java devem seguir os padrões JNI, ou seja, deve-se gerar um cabeça-lho a a partir do código fonte da DLL com assinatura dos métodos das DLLs obedecendo uns certos padrões para poderem ser utilizadas pelo Java, isso é feito com o javah.exe (vem junto com o J2SDK). Depois você inclui inclui o .h no .c e compila a DLL. Simplificando (muito!) é assim q funciona.

Mais detalhes vc encontra em Projeto Jedi

Criado 28 de outubro de 2004
Ultima resposta 28 de out. de 2004
Respostas 1
Participantes 2