jna 调用 dll 文件函数有自定义参数问题

首先请大佬先看问题
!!测试文件,函数名SpectrumH_IDP,输入浮点型一维数组,输出1长整型,输出2浮点型一维数组.!!


现在请看我的代码 ,我自己写了个dll 跑起来没问题

jna 接口
package com.company.interJNA;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import com.sun.jna.Pointer;

public interface JNA extends Library {
//    public int Transfer_Ethernet_EX(String filename,int key);
//    public int Transfer_Ethernet(String filename);



     JNA testdll= (JNA) Native.load("C:\\Users\\LIJIAZ\\source\\repos\\TestDll\\Release\\TESTDLL",JNA.class);
    int add(int a,int b);

    JNA lv= (JNA) Native.load("C:\\Users\\LIJIAZ\\Desktop\\JNA\\lvanlys",JNA.class);
    long SpectrumH_IDP(Pointer xH,Long f);

}


main  主函数

package com.company.interJNA;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
import com.sun.jna.Pointer;

public interface JNA extends Library {
//    public int Transfer_Ethernet_EX(String filename,int key);
//    public int Transfer_Ethernet(String filename);



     JNA testdll= (JNA) Native.load("C:\\Users\\LIJIAZ\\source\\repos\\TestDll\\Release\\TESTDLL",JNA.class);
    int add(int a,int b);

    JNA lv= (JNA) Native.load("C:\\Users\\LIJIAZ\\Desktop\\JNA\\lvanlys",JNA.class);
    long SpectrumH_IDP(Pointer xH,Long f);
}

因为我不知道 SpectrumH_IDP函数的第二个参数类型 我就乱写一些碰碰运气

报错

系统===true
dll add value=4
4
Exception in thread "main" java.lang.Error: Invalid memory access
at com.sun.jna.Native.invokeLong(Native Method)
at com.sun.jna.Function.invoke(Function.java:428)
at com.sun.jna.Function.invoke(Function.java:361)
at com.sun.jna.Library$Handler.invoke(Library.java:265)
at sun.proxy.$Proxy0.SpectrumH_IDP(Unknown Source)
at com.company.Main.main(Main.java from InputFileObject:21)
4
Process finished with exit code 1


我自己写的可以正常输出 第二个dll  网上说是类型不匹配
int32_t SpectrumH_IDP(void *xH, InstanceDataPtr *tidp
求救啊啊  大佬 弄了几周了
 

Invalid memory access
at com.sun.jna.Native.invokeLong(Native Method)

应该是你参数没调用对

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y