e ai pessoal!
eu preciso fazer a chamada de uma dll, blz, ja ta carregando a dll, mas nao consigo utilizar os metodos… a dll foi feita em C e eu nao tenho o codigo dela, usei o PE Explorer e consegui isso:
//AdUtil01 1.0 Type Library
//Version: 1.0
ADUTIL01Lib;
GUID = {9EEDB4C5-604D-417D-B9E2-CB06261C8363};
//AdUtilCom Class
CoClass AdUtilCom;
GUID = {FF810990-E5D3-4357-A806-25472E40A718};
//IAdUtilCom Interface
Dispatch IAdUtilCom;
GUID = {F6D47BE0-FAF8-4776-917F-486A4CE6D204};
function QueryInterface(riid: ^GUID; out ppvObj: ^^VOID); stdcall;
function AddRef: UI4; stdcall;
function Release: UI4; stdcall;
function GetTypeInfoCount(out pctinfo: ^UINT); stdcall;
function GetTypeInfo(itinfo: UINT; lcid: UI4; out pptinfo: ^^VOID); stdcall;
function GetIDsOfNames(riid: ^GUID; rgszNames: ^^I1; cNames: UINT; lcid: UI4; out rgdispid: ^I4); stdcall;
function Invoke(dispidMember: I4; riid: ^GUID; lcid: UI4; wFlags: UI2; pdispparams: ^DISPPARAMS; out pvarResult: ^Variant; out pexcepinfo: ^EXCEPINFO; out puArgErr: ^UINT); stdcall;
//method OpenFile
function OpenFile(fname: BSTR; fmode: BSTR): I4; stdcall;
//method WriteSpl
function WriteSpl(buffadr: I4): I4; stdcall;
//method CloseFile
function CloseFile: I4; stdcall;
//method LoadFcb
function LoadFcb(buffadr: I4): I4; stdcall;
//method ReadBinFile
function ReadBinFile(buffadr: I4; reclen: I4): I4; stdcall;
//method ReadCfgFile
function ReadCfgFile: I4; stdcall;
//method GetCfgIp
function GetCfgIp: BSTR; stdcall;
//method GetCfgPort
function GetCfgPort: BSTR; stdcall;
//method GetCfgDpgm
function GetCfgDpgm: BSTR; stdcall;
//method GetCfgCmd
function GetCfgCmd: BSTR; stdcall;
//method GetCfgFcb
function GetCfgFcb: BSTR; stdcall;
//method GetCfgDir
function GetCfgDir: BSTR; stdcall;
//method ReadCard
function ReadCard(buffadr: I4; sendlen: I4): I4; stdcall;
//method GetNumCards
function GetNumCards: I4; stdcall;
na hora que tento usar a ReadCfgFile, que le as configs do programa ele nao encontra a função… e dá essa excecão:
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Error looking up function 'ReadCfgFile': Não foi possível encontrar o procedimento especificado.
at com.sun.jna.Function.<init>(Function.java:113)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:219)
at com.sun.jna.Library$Handler.invoke(Library.java:193)
at $Proxy0.ReadCfgFile(Unknown Source)
at adconnector.FiladoPower.<init>(FiladoPower.java:75)
at adconnector.FiladoPower$4.run(FiladoPower.java:472)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
não sei se ta certo mas minha interface ta assim:
import com.sun.jna.Native;
import com.sun.jna.win32.StdCallLibrary;
/**
*
* @author leandro
*/
public interface AdUtilCom extends StdCallLibrary{
public String ReadCfgFile();
public String GetCfgIp();
public String GetCfgPort();
public String GetCfgDpgm();
public String GetCfgCmd();
public String GetCfgFcb();
public String GetCfgDir();
AdUtilCom INSTANCE = (AdUtilCom)
Native.loadLibrary("AdUtil01", AdUtilCom.class);
}
alguem pode dar uma luz?