Eu consegui acessar a .dll da Bematech via JNA, infelizmente o pessoal da Bematech não implementou a função Bematech_FI_ArquivoMFD que consta no seguinte site: http://www.bematech.com.br/suporte/bemafi32/index.html . Abaixo contém o código que fiz para executar essa função, o problema é que a função está retorno -2: Parâmetro inválido na função. Não tem como ser parâmetro inválido se os dados foram os mesmos postos no exemplo da Bematech ? Será que alguém poderia me ajudar? Pode ser algum valor a ser setado no BemaFI32.ini , eu não sei?
BematechJNA.java
package ECF3;
import com.sun.jna.win32.StdCallLibrary;
/**
*
* @author FISCAL
*/
public interface BematechJNA extends StdCallLibrary {
/** Creates a new instance of BematechJNA */
public int Bematech_FI_ArquivoMFD(String cArqOrigem, String cDataInicial, String cDataFinal, String cChavePublica , String cChavePrivada);
public int genkkey(bemajava.BemaString cChavePublica , bemajava.BemaString cChavePrivada);
}
DriverECF2.java
package ECF3;
import com.sun.jna.*;
import com.sun.jna.NativeLibrary;
/**
*
* @author FISCAL
*/
public class DriverECF2 {
/** Creates a new instance of DriverECF2 utilizando JNA */
private BematechJNA bematech;
public DriverECF2() {
bematech = (BematechJNA)Native.loadLibrary("BemaFI32",BematechJNA.class);
}
public void LeituraX(){
this.bematech.Bematech_FI_LeituraX();
}
public void ArquivoMFD(String cArqOrigem, String cDataInicial, String cDataFinal, String cChavePublica , String cChavePrivada){
System.out.println("Retorno da função ArquiMFD: "+ this.bematech.Bematech_FI_ArquivoMFD(cArqOrigem, cDataInicial, cDataFinal, cChavePublica , cChavePrivada));
}
}