JAVA通过JNA调用C语言的dll的问题,求解

hzcdj1994 2019-07-17 09:16:21
系统环境说明:程序部署在公用服务器上,需要调用的DLL由于需要客户专网环境,所以放在客户电脑上。
实现说明:程序使用java的applet通过JNA让服务器的程序加载到客户电脑的DLL,并且调用dll中的接口方法,目前这一步已经成功。
问题:程序调用dll已经成功,接口方也收到了我们的请求,但是在接口方返回数据的给我们的时候,客户电脑上的JAVA applet报错直接闪退。以下是报错日志



Stack: [0x18640000,0x18690000], sp=0x1868ec4c, free space=315k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [msvcrt.dll+0x143f9] strlen+0x26
C [jna2054481210526187203.dll+0x6810] Java_com_sun_jna_Native_getString+0x20
j com.sun.jna.Native.getString(JZ)Ljava/lang/String;+0
j com.sun.jna.Pointer.getString(JZ)Ljava/lang/String;+7
j com.sun.jna.Pointer.getString(J)Ljava/lang/String;+90
j com.sun.jna.Function.invokeString(I[Ljava/lang/Object;Z)Ljava/lang/String;+35
j com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+544
j com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+214
j com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+341
j com.sun.proxy.$Proxy2.SendRcvSx(Ljava/lang/String;[B)Ljava/lang/String;+20
...全文
30 点赞 收藏 1
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Enchanter, 2019-07-17
可能是数据类型出问题了,用二进接收试一试,
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2019-07-17 09:16
社区公告
暂无公告