***如何调用本地函数中的方法***

chinaemin 2004-01-06 01:21:35
例如,现在有一个dll链接文件ABC.dll,其中已知方法入口int abc(String a,String b, String c, int d),如何在JAVA中直接调用该方法?

如下使用,则会报出UnsatisfiedLinkError错误,意思说,方法的参数不正确!请问:该如何解决?

谢谢!

import java.lang.*;
import java.io.*;
import java.util.*;

public class TestJNI{
public TestJNI(){}
public void test(String a, String b, String c, int d){
int i = abc(a, b, c, d);
System.out.println("this is test:"+i);
}

public native int abc(String a, String b, String c, int d);
static{
System.loadLibrary("ABC");
}

public static void main(){
TestJNI test = new TestJNI();
test.test("a","b","c",1);
}

}

...全文
51 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
chinaemin 2004-01-08
  • 打赏
  • 举报
回复
还是无人解决啊:(
chinaemin 2004-01-06
  • 打赏
  • 举报
回复

谢谢各位!
chinaemin 2004-01-06
  • 打赏
  • 举报
回复

还有另外一个问题:
如果是在B/S模式下使用JNI,是不是还有一个安全验证的问题?
et625 2004-01-06
  • 打赏
  • 举报
回复
除了JNI还有别的方法么?想不通如果不用JNI可以的话还搞出个JNI来干什么,怪麻烦的。
最好的方法恐怕是不用JAVA来调用
chinaemin 2004-01-06
  • 打赏
  • 举报
回复

谢谢楼上:)
肯定是使用JNI了。可是,如何实现我所要的功能呢?
不可能每次都要自己写本地方法啊!以前写的一些本地方法,为什么不能够拿来直接用呢?
rubber365 2004-01-06
  • 打赏
  • 举报
回复
你不能直接这样用的,你需要先定义一个DLL的导出类
public class UseABC
{
public UseABC()
{
}

int abc(String a,String b, String c, int d);

static
{
System.loadLibrary("ABC");
}
}

同时使用前,你还要注意将这个ABC.DLL首先在系统中注册了(使用regsvr32)


Leemaasn 2004-01-06
  • 打赏
  • 举报
回复
上网搜索一下
使用JNI
吧。。
chinaemin 2004-01-06
  • 打赏
  • 举报
回复
谢谢楼上两位!
主要是如何不编写本地方法代码,而直接调用的问题!
用google搜了,全是如同JNI帮助文档中的例子类似的,没有我所需要的功能!
chinaemin 2004-01-06
  • 打赏
  • 举报
回复
谢谢:)
对于需要自己实现的本地方法,用你给的那个链接的例子是可以实现的,我做过同样的练习。
可是,现在的问题是:我手头只有给定的ABC.dll文件和其中仅知的方法入口int abc(String a,String b, String c, int d),具体这个方法是如何实现的,我无从知晓:(所以,不能够用JNI帮助文档中的那些例子!

怎么样才能够实现不去自己编写本地方法,而直接调用给定的本地函数中的方法呢???

再次对你的帮助表示感谢!
warren04 2004-01-06
  • 打赏
  • 举报
回复
要使用JNI,你搜索一下,应该很多的
xiaoganba 2004-01-06
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2063/2063835.xml?temp=2.390689E-02
说的很详细
tianyayixi 2004-01-06
  • 打赏
  • 举报
回复
替你顶~
chinaemin 2004-01-06
  • 打赏
  • 举报
回复

up myself:)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧