系统环境说明:程序部署在公用服务器上,需要调用的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