Olá amigos do fórum. Venho até vocês pois estou com uma enorme dúvida… Usando JNA consigo acessar funções simples contidas em uma DLL (Delphi), porém, para uso da mesma DLL em um módulo Desktop e um modulo WEB, terei uma rotina em comum e, para não ter que duplicar, resolvi desenvolver uma dll. Porém esta dll possui uma interface com um type record e seu acesso via delphi é simples, mas no Java a coisa complicou…
Segue o código da dll (Delphi):
TESTELIB.DLL
library TESTELIB;
{$DEFINE TESTELIB}
uses
System.SysUtils,
System.Classes,
TesteInter in 'TesteInter.pas';
{$R *.res}
function Retornar(Teste: PTeste): PChar; stdcall;
begin
Result := 'Entrei!';
Teste^.vResultado := 'Teste 123';
end;
exports Retornar;
begin
end.
interface TesteInter.pas
unit TesteInter;
interface
type
PTeste = ^TTeste;
TTeste = record
vResultado: PChar;
end;
{$IFNDEF TESTELIB}
function Retornar(Teste: PTeste): PChar; stdcall;
{$ENDIF}
implementation
{$IFNDEF TESTELIB}
function Retornar; external 'TESTELIB.DLL' name 'Retornar';
{$ENDIF}
end.
gostaria de saber como acessar esta interface via java pois ela contem o type Teste e a variável vResultado (que é o que me interessa…)
obrigado!


