é possível listar metodos de uma DLL usando JNI?

Bom dia !

Pessoal , preciso de uma ajudinha

é possivel listar os metodos existentes em uma dll usando JNI?

O problema é o seguinte tenho uma dll que estou acessando normalmente , porem não tenho o layout dessa dll
que me retorne os metodos e seus argumentos , e gostaria de saber se é possivel usando JNI listar os metodos dessa dll , se existe algum metodo que faça isso

Att JavaX

Depende do tipo de DLL.
Se for uma DLL que você pode acessar via JNI de maneira simples (ou seja, incluindo o arquivo .h e o .lib correspondentes dessa DLL), não é possível listar os parâmetros, porque eles não são gravados na DLL. (que peninha :frowning: )

Se for uma DLL COM ou ActiveX (ou seja, aquelas que requerem que você use um regsvr32 para funcionarem, mais conhecidas como DLLs registradas, e que normalmente são escritas em VB 6 ou Delphi, às vezes em C++), é difícil chamá-las via JNI, você precisa de uma biblioteca como o Jacob. Esse tipo de DLL contém um recurso chamado “TLB”, que é uma listagem dos métodos.

Se for uma DLL .NET, também é difícil chamá-las via JNI e você precisa de alguma ponte Java -> .NET para funcionarem. Essas DLLs podem também ter seus métodos listados.

[quote=entanglement]Depende do tipo de DLL.
Se for uma DLL que você pode acessar via JNI de maneira simples (ou seja, incluindo o arquivo .h e o .lib correspondentes dessa DLL), não é possível listar os parâmetros, porque eles não são gravados na DLL. (que peninha :frowning: )

Se for uma DLL COM ou ActiveX (ou seja, aquelas que requerem que você use um regsvr32 para funcionarem, mais conhecidas como DLLs registradas, e que normalmente são escritas em VB 6 ou Delphi, às vezes em C++), é difícil chamá-las via JNI, você precisa de uma biblioteca como o Jacob. Esse tipo de DLL contém um recurso chamado “TLB”, que é uma listagem dos métodos.

Se for uma DLL .NET, também é difícil chamá-las via JNI e você precisa de alguma ponte Java -> .NET para funcionarem. Essas DLLs podem também ter seus métodos listados. [/quote]

Obrigado, entanglement pelo retorno , sei que a dll que estou usando é feita em c++, segundo o frabricante e que não é do tipo registrada

Att ,

Até aí você pode ter um cenário complexo. Vamos dar um exemplo bobo.

Digamos que a DLL tenha um método assim:

__dllspec (__dllexport) std::string converterParaString (int x);

Você obrigatoriamente terá de ter o .h e o .lib dessa biblioteca para poder linká-la com seu código JNI.

Fale com o fabricante, ele precisa lhe dar o .h e o .lib :slight_smile:

[quote=entanglement]Até aí você pode ter um cenário complexo. Vamos dar um exemplo bobo.

Digamos que a DLL tenha um método assim:

__dllspec (__dllexport) std::string converterParaString (int x);

Você obrigatoriamente terá de ter o .h e o .lib dessa biblioteca para poder linká-la com seu código JNI.

Fale com o fabricante, ele precisa lhe dar o .h e o .lib :)[/quote]

vlw , tranquilo vou buscar os outros arquivos

att,