Usar dll

amigos bom dia…

eu tenho uma dll
e o pior nao tenho documentacao dela…

pois bem…
preciso carregar ela de forma que ela funcione igual a uma classe
ou seja se eu fizer

Minhadll minhadll = new MinhaDll();

quando eu digitar minhadll. e digitar o ponto aparecer a relacao de metodos que ela tem…

eu consigo fazer isso?

tentei fazer alguma coisa do tipo:

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package testedll;

/**
*

  • @author Jonas
    /
    public class TesteDll {
    static {
    System.loadLibrary(“c:\client\ppchip.dll”);
    }
    /
    *
    • @param args the command line arguments
      */
      public static void main(String[] args) {
      TesteDll t = new TesteDll();
      System.out.println(“passou”);
      // TODO code application logic here
      }
      }[/code]

porem quando eu executo ja me da um erro:

java.lang.UnsatisfiedLinkError: Directory separator should not appear in library name: c:\client\ppchip.dll
at java.lang.Runtime.loadLibrary0(Runtime.java:820)
at java.lang.System.loadLibrary(System.java:1028)
at testedll.TesteDll.(TesteDll.java:13)
Could not find the main class: testedll.TesteDll. Program will exit.
Exception in thread “main” Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

na realidade estou procurando um geito de tentar descobrir quais os metodos desta dll e como sao suas asinaturas…

se alguem conhecer alguma coisa agradeco desde ja…

O seu codigo nunca vai funcionar, vc precisa usar JNA. http://jna.java.net/

PS: jeito eh com J de Java. :slight_smile:

//Daniel

Eu ia corrigir o mal ‘geito’ mas uma vez que o colega já o fez vou me deter na parte técnica :smiley: :smiley:

Aqui no meu projeto eu uso um DLL pra se comunicar com ECF,então o fornecedor já disponibiliza a documentação.

Serve pra que essa DLL?

Ja viu esse link?
http://www.tecnoteam.com.br/arquivos/Modulos%20SiTef/adicionais/Cf_Bandeiras/SiTef%20-%20Interface%20Simplificada%20com%20a%20aplica__o(VRS-087).pdf

obriagdo cara vou dar uma olhada

E se for JNI?
http://javafree.uol.com.br/artigo/13913/JNI-Java-Native-Interface.html

[quote=raf4ever]Eu ia corrigir o mal ‘geito’ mas uma vez que o colega já o fez vou me deter na parte técnica :smiley: :smiley:

Aqui no meu projeto eu uso um DLL pra se comunicar com ECF,então o fornecedor já disponibiliza a documentação.

Serve pra que essa DLL?

[/quote]

Autocomplete precisa de relação de métodos para funcionar. A dll só tem assembly e uma relação de nomes para c++ ou c dependendo. O único programa que extrai isso é o dumpbin do visual c++ ou programas similares.

ex:

Archive member name at 8: /
2FB537E1 time/date Sat May 13 15:51:13 1995
uid
gid
0 mode
2864 size
correct header end

391 public symbols

 556C _CloseDriver@12
 58A0 _DefDriverProc@20
 5BDC _DriverCallback@28
 5F1C _DrvGetModuleHandle@4
 626A _GetDriverModuleHandle@4
 65C4 _NotifyCallbackData@20
 6914 _OpenDriver@12
 6C44 _PlaySound@12
 6F70 _PlaySoundA@12
 72A0 _PlaySoundW@12

http://support.microsoft.com/kb/177429