Chamada de .DLL ecrita em C

3 respostas
R

Pessoal,

tenho uma DLL que era usado no meu aplicativo em VB mas agora preciso acessa-la em JAVA. Ja peguei alguns exemplos mas ate agora nao funcionou, creio que o problema esta no tipo de parametro que tenho que passar e receber da funcao na DLL.
A DLL foi escrita em C e o chamado dela no VB eh o seguinte:

'Definicao ----------
Type FONET
Texto As String * 1024
End Type

Declare Sub PesquisaFonetica Lib “DFonet32.dll” (ByRef Logradouro As FONET, CodigoFonetico As FONET)

'Chamada ----------
Dim sLogradouro As FONET
Dim sLogradouroFonetico As FONET

sLogradouro.Texto = Space(1024)
sLogradouroFonetico.Texto = Space(1024)                  
sLogradouro.Texto = "TESTE"
Call PesquisaFonetica(sLogradouro, sLogradouroFonetico)

’ o retorno da funcao vinha no campo “sLogradouroFonetico”

:frowning:

qualquer ajuda eh bem-vinda.

3 Respostas

danieldestro

Tá usando JNI?

Implementou certinho as classes de acesso?

R

a implementacao:

.
.
.
.
private static native String PesquisaFonetica(String logradouro, String codigoFonetico);

static {

try {

System.load(C:\Dfonet32.dll);

} catch (RuntimeException e) {

System.out.println(nao foi possivel carregar a DLL);

}

}

.

.

.

.

//chamada

String sLogradouro = new String();

String sLogradouroFonetico = new String();

sLogradouro = teste;

String temp = PesquisaFonetica(sLogradouro, sLogradouroFonetico);
.
.
.

tem algo errado ???

danieldestro

Acho que não é assim que se chama a DLL, não.
Não pelo nome físico dela, mas pelo nome dela, do mesmo modo como você a carregaria pelo VB

Aquelas coisas de:

“Scripting.ObjectFile”

“ADODB.Recordset”

Criado 19 de agosto de 2003
Ultima resposta 19 de ago. de 2003
Respostas 3
Participantes 2