Como acessar função de uma DLL

1 resposta
mateusviccari
Tenho que acessar a dll de uma impressora fiscal Daruma, tenho esse código feito em cima de um exemplo da propria daruma:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package testedaruma;

import br.com.daruma.jna.*;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import javax.swing.JOptionPane;

/**
 *
 * @author adm
 */
public class TesteDaruma {

    /**
     * @param args the command line arguments
     */
    
    public static void main(String[] args){
        carregarDll();
        int iRetorno= ECF.eBuscarPortaVelocidade();
        System.out.println(iRetorno);
    }
    
    public static void carregarDll() {
        try{            
            //System.load("/usr/lib/DarumaFramework.so");
            System.load("C:/windows/system32/DarumaFramework.dll");
            System.out.println("Biblioteca carregada!!!");
        } catch(Exception e) {
           e.printStackTrace();
        }
    }
    
}
Porém está retornando o seguinte erro:
run:
Biblioteca carregada!!!
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'eBuscarPortaVelocidade_ECF_Daruma': Não foi possível encontrar o procedimento especificado.

	at com.sun.jna.Function.<init>(Function.java:179)
	at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:344)
	at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:324)
	at com.sun.jna.Library$Handler.invoke(Library.java:203)
	at br.com.daruma.jna.$Proxy0.eBuscarPortaVelocidade_ECF_Daruma(Unknown Source)
	at br.com.daruma.jna.ECF.eBuscarPortaVelocidade(ECF.java:886)
	at testedaruma.TesteDaruma.main(TesteDaruma.java:25)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)
O que devo fazer?

1 Resposta

M

Há um tempo atrás precisei acessar uma dll usando Java e usei o projeto com4j: http://com4j.java.net/ .

Funcionou muito bem. Recomendo.

Criado 9 de janeiro de 2012
Ultima resposta 9 de jan. de 2012
Respostas 1
Participantes 2