请问java调用dll里的一个方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问java调用dll里的一个方法相关的知识,希望对你有一定的参考价值。

我现在有个abc.dll文件
还有个aaa.h的头文件
这个aaa.h的头文件里有
int DIA_API NewGraph DIA_AL((long FAR *, graphnew_t FAR *));

我想问下怎么调用这个文件 也就是调用这个头文件里的这个方法

JNAerator调用本地代码很方便。
Java用'MyLibHeader.h'头文件调用'MyLib.dll'

java -jar jnaerator.jar MyLib.dll MyLibHeader.h

将产生 MyLib.jar 追问

现在只能用JNI 来做 已经订好了 不能用别的

追答

JNAerator只是对jni的一个包装而已,不用你另外再写相关的java类,而且相关的java类很丑。

参考技术A http://developer.51cto.com/art/200906/129773.htm

使用native
参考技术B 你要定义一个和这个文件调用类,将javah 编译出一个c++/c能调用的头文件。在用头文件去关联你的函数。编译成动态库调用。追问

现在有的只有一个dll文件和 这个dll对应的头文件。还有这个dll文件内容不可以修改

你的意思是不是我写一个java代码 然后生成1个头文件 用这个头文件关联?
不过dll文件不可以修改 怎么关联 难道在做一个dll文件 让这个dll文件 关联另一个dll文件么?

参考技术C 使用JNI

以上是关于请问java调用dll里的一个方法的主要内容,如果未能解决你的问题,请参考以下文章

请问怎么把.dll文件加入我的java工程,并能使用里面的方法?

我是Delphi新手,现请教一个调用DLL的问题.

java加载dll文件

Java如何将dll文件打包到jar中?

java 调用C写的DLL

请问java高手,spring的jdbcTemplate是怎样调用oracle的存储过程的呢?