Ler uma DLL Desconhecida

Nao sei se esse assunto é um tópico avancado mas vamos ai!!!

tenho um problema que gostaria que vcs me ajudassem

estou tentando ler uma DLL mas nao sei como ela foi escrita (qual linguagem, qual interface…)
Usando JNI estava querendo conectar ela ao JAVA

questoes
como fazer pra ler a interface dessa biblioteca?
se ela estiver em outra linguagem (senao C/C++) tem como conectar?
é dificil usar JNI?
Onde Acho um tutorial convincente?

https://jna.dev.java.net/

eh preciso saber no minimo a interface da dll.
metodos, retornos e parametros.

entao…
mas tem como ler essa interface?
esse é o principal problema…

ela é uma biblioteca que utiliza um emulador de um sistema de informacao…
O sistema , por padrao, é escrito em java mas tem essa biblioteca compilada em outra linguagem para aumentar o desempenho do sistema em ambiente windows…

gostaria muito de conseguir isso!!! meu estagio ta dependendo disso!!!

abracosssss

tambem tem um problema

essa biblioteca nao é do windows…
acho que ela nao está no path

alguem arrisca um palpite?

Você sabe se essa DLL é daquele tipo que requer registro no Windows (ou seja, usar “regsvr32 nomedadll.dll”?

Se for, então você pode fazer o seguinte:

  • Escrever um programa VB 6.0 que chame essa DLL.
    (É possível escrever um programa em C#, caso você não tenha acesso ao Visual Studio 6, se você importar essa DLL como COM.)
  • Então você pode traduzir esse programa VB 6.0 (ou C#) para Java usando a biblioteca Jacob ( http://sourceforge.net/projects/jacob-project/ )

Bom o programa antigo está escrito em VBA

mas tem um novo sistema que abre “portas” pra gente trabalhar em java em cima dessas “Portas”
ganhariamos mais tempo escrevendo em java

soh que as bibliotecas nao mudaram…

será que, entao, posso usar esse jacob?

Acredito que sim. Experimente pegar um desses programas em VBA e efetuar as chamadas equivalentes usando o Jacob.

Você pode utilizar o software Anywhere PE Viewver verificar quais as funções que existem na dll…

outra forma é fazer uma dll ponte entre a aplicação e a dll que você quer obter as informações, e depois utilizar JNI, ou JNA que é bem mais fácil… dá uma olhada neste site:

http://www.urubatan.com.br/chamando-metodos-nativos-dllso-em-java-sem-jni/

Esse visualizador de interface é free ou opensource?
se for, ate rola usar ele…

Sim o software é Freeware… vc importa a Dll para o programa e se as funções que você deseja utilizar estiverem na aba “Export Table”, você pode acessá-los através de JNI ou JNA, conforme lhe falei… :slight_smile:

Desculpe incomodar-te novamente…
mas JNI conecta em DLLs que nao tenham sido escritas em C/C++?

A sigla JNI refere-se a Java Native Interface, ou seja, é uma Interface para acessar o código nativo com Java ou vice-versa … a Dll a qual você quer acessar é indiferente… seja em C, C++, Delphi, etc.

Huuuuummmmmm boto fé!!!

com JNI ou JNA eu preciso fazer um stub em C?

(cara… sao tantas perguntas… amanha tenho que dar uma resposta pro meu chefe!!!)

Sei bem oq é isso, já estive na mesma situação a alguns meses atrás…rs

Vamos lá, pra vc entender melhor, vou lhe passar um site que te explica passo a passo como fazer isso em JNI http://homepages.dcc.ufmg.br/~bigonha/Cursos/Ap/Native/JavaNativeMethod.html não é difícil, mais é um pouco chato pq tem muito detalhe…

Conforme lhe falei, você pode tbm utilizar JNA q já é a interface pronta, você apenas a invoca… dê uma lida no material para entender melhor…

boa sorte… :smiley:

VLW MAN!!!1

lol

qualquer duvida vou postar blz?

abracoooo
:lol: :lol: :lol: :lol:

MAN não :x … WOMAN …

Blz, qualquer dúvida posta aí, no q eu puder ajudar… :thumbup:

Foi mal gata!!!

nem reparei no seu nick

hauahauahauahauaha

ok

posso mandar MP?

POsta aki no forum mesmo, pois assim pode ser a dúvida de outras pessoas tbm…

abraço… :slight_smile:

of course!!!

bjo