大家给点意见,使用XE写的DLL给JAVA调用使用那种方案?
我在网上查了一些资料发现,有两种方案;
第一是:使用XE写好的DLL,JAVA 定义一个接口 加载DLL,然后定义DLL的接口完成;
如: public interface CLibrary extends Library {
2 CLibrary INSTANCE = (CLibrary) Native.loadLibrary("testdll", CLibrary.class); // 引入库文件
3
4 public int HelloStr(int i); // 声明方法
5 public void Hello();
6 public void HelloInt(Integer i);
7 public void HelloRRR(Integer i);
8 }
第二是:下载JIN.pas,定义jAVA类加载DLL,然后通过Native定义接口方法完成
如下:
package alvinJNI;
class HelloWorld {
static {
System.loadLibrary("DelphiAction"); //等一下我们就用Delphi来编一个程序,编好之后生成的文件就是 DelphiAction.dll 这是一个动态链接库文件,这个类里先在静态语句块中加载它
}
public native void printText(); //声明一个 native 的本地代码程序,我们使用的是 Delphi 来编写.注意:这个方法在这里只是声明,并没有定义方法体,因为这个方法我们要用 Delphi 来实现.
public static void main(String[] args) {
//创建对象并调用里面的 native 方法.
HelloWorld hw = new HelloWorld();
hw.printText();
}
}
这两种方案那个比较好点?