使用Java(JNA)映射Delphi DLL的函数

拉斐尔·瓜拉(Rafael Guerra)

尝试在JNA Java的Delphi中使用DLL的两个功能时遇到问题。在测试软件(Delphi,由DLL提供)中,我具有以下功能(在测试软件中可以完美运行):

function abrir_conexao (const modelo : **byte**; const host : **pansichar**; const porta : **word**; const senha : **pansichar**) : integer; stdcall external 'comunicacao.dll';

function enviar_comando (const comando : **byte**; var tamanho : **byte**; var dados : **pbyte**) : integer; stdcall external 'comunicacao.dll';

我正在尝试在Java(JNA)中实现这些功能。我通常会加载dll,但是,我相信问题在于正确的原始变量的使用:

public int abrir_conexao (**byte** modelo, **String** host, **short** porta, **String** senha);

public int enviar_comando(**byte** comando, **byte** tamanho, **byte[]** dados);

但这不起作用。有人可以帮忙吗?

技术

对于以下本机功能:

function abrir_conexao (const modelo : byte; const host : pansichar; const porta : word; const senha : pansichar) : integer; stdcall external 'comunicacao.dll';

function enviar_comando (const comando : byte; var tamanho : byte; var dados : pbyte) : integer; stdcall external 'comunicacao.dll';

JNA映射:

public interface MyLibrary extends StdCallLibrary {
    MyLibrary INSTANCE = (MyLibrary)Native.loadLibrary('comunicacao', MyLibrary.class);
    int abrir_conexo(byte modelo, String host, short port, String senha);
    int enviar_comando(byte comando, byte tamanho, byte[] dados);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章