weixin_42299852 2009-01-25 01:34
浏览 1088
已采纳

java(JNA/JNative/JNI等)怎样调用 DLL 中 返回 指针 的函数 得到指针值?

JAVA(JNA/JNative/JNI等)怎样调用DLL中 返回指针的函数(指针函数),得到其值(其指针对应的值)?

以下给出其它语言的调用示例:

 

//////////////////////////////////////////////////////////////////////////////////////////

 

vb中的调用方式:

Private Declare Function functionA Lib "mydll.dll" (ByVal a As Long, ByVal  b As Long, ByVal c As String, d As Long) As Long

jieguo = "    "
no1 = functionA(0,0,strA,0) '返回识别结果字符的指针
no2 = lstrcpy(jieguo, no1) 'VB中用lstrcpy就可以从指针得到字符了,当然你也可以选择其他的方式

 

我要的就是 jiegou

///////////////////////////////////////////////////////////////////////////////////////////


vc中的调用:

char* WINAPI functionA(...)
    Def_API(tag_functionA, functionA, "mydll.dll")

char* ret = functionA(...);

我要的就是 ret字符串

 

///////////////////////////////////////////////////////////////////////////////////////////

 

那JAVA中怎样来调用呢,DLL我是没办法更改的!试过用JNative、JNA调用,都没有调用指针函数的示例.自己用C写一个DLL间接调用估计可以,但C写DLL不会...

  • 写回答

1条回答 默认 最新

  • wwwghost 2009-01-25 12:29
    关注

    [quote]那JAVA中怎样来调用呢,DLL我是没办法更改的!试过用JNative、JNA调用,都没有调用指针函数的示例.自己用C写一个DLL间接调用估计可以,但C写DLL不会...[/quote]
    用HANDLE作为返回指针。然后
    [code="java"]resultA.getPointer().getString(0)[/code]
    取得字符串。详情请看短信。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器