weixin_42299852
weixin_42299852
2009-01-25 01:34

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 wwwghost 12年前

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

    点赞 评论 复制链接分享

相关推荐