首页 新闻 会员 周边

java 调用DLL问题请教

0
悬赏园豆:20 [待解决问题]

前面所问的问题基本上都是围绕着这个函数原型的。这个函数原型来自idr210。

函数原型:int ReadBaseMsg( unsigned char * pMsg, int * len);

网上有很多网友都是关于C#怎么调用这个函数原型的见解。

但是本人现在使用的是JAVA调用。主要使用了Jnative.jar.

问题:调用此方法的时候有时候会将正确数据输出,有时候又不能。请问这个为什么?

java调用代码:

     JNative jNative=new JNative("sdtapi","ReadBaseMsg");
         jNative.setRetVal(Type.INT);    
         //设置参数pMsg[out] ,字节数不小于192.
         Pointer pointer=createPointer(192);
         pointer.zeroMemory();
         jNative.setParameter(0, pointer);
         //设置参数Len[out],可以给空值(NULL)
         jNative.setParameter(1, NullPointer.NULL);
       
         jNative.invoke();
        
       int retVal=jNative.getRetValAsInt();//retVal为1:正确;其他:错误

xiaowei-blog的主页 xiaowei-blog | 初学一级 | 园豆:179
提问于:2015-05-27 12:43
< >
分享
所有回答(1)
0

改为下面的代码试试:

Integer.parseInt(jNative.getRetVal());
dudu | 园豆:30994 (高人七级) | 2015-05-27 14:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册