尝试在java中调用DLL时会出现错误:java.lang.error:无效内存访问

尝试在java中调用DLL时会出现错误:java.lang.error:无效内存访问,java,jersey,jna,Java,Jersey,Jna,im使用Java+Jersey+JNA() 在delphi中创建了访问DLL文件的方法 我的操作系统是windowns1064位。 dll是以64位生成的 我只是想用java访问DLL方法 Java的代码是: DllSimples.java import com.sun.jna.Library; import com.sun.jna.Native; public interface DllSimples extends Library{ String testar(); } pu

im使用Java+Jersey+JNA() 在delphi中创建了访问DLL文件的方法

我的操作系统是windowns1064位。 dll是以64位生成的

我只是想用java访问DLL方法

Java的代码是:

DllSimples.java

import com.sun.jna.Library;
import com.sun.jna.Native;

public interface DllSimples extends Library{

    String testar(); 
}
public Response chamaDll() {

    DllSimples calculadora = (DllSimples)
              Native.loadLibrary("teste", DllSimples.class);

    String parametro = calculadora.testar();

    MensageiroDTO mensagem = new MensageiroDTO(parametro);
    return Response.ok(mensagem).build();
}
TesteService.java

import com.sun.jna.Library;
import com.sun.jna.Native;

public interface DllSimples extends Library{

    String testar(); 
}
public Response chamaDll() {

    DllSimples calculadora = (DllSimples)
              Native.loadLibrary("teste", DllSimples.class);

    String parametro = calculadora.testar();

    MensageiroDTO mensagem = new MensageiroDTO(parametro);
    return Response.ok(mensagem).build();
}
pom.xml

<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>4.5.2</version>
</dependency>

注意:DLL以前是用DELPHI语言测试的,它正在工作。

不要每次调用函数时都重新加载DLL,只需静态存储接口。请显示DELPHI函数的函数声明和参数文档。朋友们好,我发现了问题。我在delphi中没有使用pchar变量,而是使用字符串。因此,java和Delphi中的字符串不能一起工作。它们的变量类型必须兼容。消息错误很奇怪,与实际问题不符。谢谢你抽出时间。