weixin_42299852 2009-01-22 10:57
浏览 228
已采纳

java dll jni jnative相关问题

问个问题:

我要用java调用一个dll,使用JNI或者(JNative组件),但dll中有一个函数返回的是指针类型.vb中用lstrcpy(result, pointer) 就可以得到,
vc中 char* ret = 函数() 就可以得到,可我的java中怎么得到指针对应的值呢.....?????
JNative中只有jNative.getRetValAsInt() jNative.getRetVal()两个方法,一个返回String值,一个返回int值
[b]问题补充:[/b]
我不知道对于DLL的 [b]指针函数[/b] ,JNative在调用时是否能返回指针...
lewhwa 告诉我的方法"那就用JNative.getRetVal(),然后再用String.toCharArray()得到CharArray",,,可这个CharArray有什么用呢,能说详细一点吗?我要的是: [b]DLL中[i]指针函数[/i]返回的[color=red]指针[/color]对应的值![/b]
谢谢各位的帮助!!!
[b]问题补充:[/b]
指针对于的值就是String包含的内容,[b]如果是这样[/b]就比较好办!只是我调试的时候调用得到的String都是一个空串,不是我预期的结果,所以困惑.另外,查了一些资料发现[color=red]JNA(Java Native Access)[/color]对Dll调用好像处理得更完美一些....[color=red]?[/color]
"通过传入String的引用来获取函数处理的值" 这点我能够理解,只是我手头的dll是封装好了的没办法更改,现在就是要取其返回的指针值.
我再来试试看,...再次感谢感谢!

[b]问题补充:[/b]
给我email好不?或者我的QQ:1006570814

  • 写回答

5条回答 默认 最新

  • wwwghost 2009-01-23 23:28
    关注

    [quote]我不知道对于DLL的 指针函数 ,JNative在调用时是否能返回指针...
    lewhwa 告诉我的方法"那就用JNative.getRetVal(),然后再用String.toCharArray()得到CharArray",,,可这个CharArray有什么用呢,能说详细一点吗?我要的是: DLL中指针函数返回的指针对应的值! [/quote]
    其实,如果要得到指针对于的值就是String包含的内容。在C语言中返回的char *就是以\0结尾的字符串值。
    我上面所说的如果非要转换成char数组,将String进行转换即可!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?