Pessoas,
Como nunca tinha feito nada com JNI, fui, claro, dar uma googleada por aí (e uma GUJeada por aqui, também) para entender alguma coisa. Confesso que ainda estou meio no ar, mas vamos lá:
Tenho uma dll aqui de uma empresa que fornece pin pads. Os caras mandaram a dll junto com um exemplo em VB (que funciona). Desculpando pela injúria, mas eu tenho essa definição de função da dll, feita em VB:
Declare Function iOpenSuperPin Lib "superpin.dll"
(ByVal uiDeviceNumber As Integer,
ByVal caErrorMessage As String, ByVal ucCountKey As Byte)
As Integer
Eu tentei usar essa função da DLL em Java utilizando o seguinte código:
[code] public static native void iOpenSuperPin(int uiDeviceNumber, String caErrorMessage, int unCountKey);
static {
System.load(“C:/WINNT/system32/SUPERPIN.DLL”);
}
…
String x = “”;
iOpenSuperPin(1,x,0);
[/code]
Bem, como já devem ter adivinhado, consegui a seguinte resposta:
java.lang.UnsatisfiedLinkError: iOpenSuperPin
Em um momento anterior, essa mesma exception estava ocorrendo em relação a própria DLL (dava erro no System.load), mas corrigi isso passando o full path.
Talvez a frase “vc precisa estudar mais JNI” caiba aqui, mas isso aqui parece muito simples pro que já andei vendo.
Alguma luz?
Obrigado!