使用JNI(JAVA本地接口)来调用dll完成用delphi实现的功能:
1. 编写Java类,在类内部静态加载要调用的dll文件,然后给出使用的函数的声明(用native关键字),示例如下:








2. 编写delphi的dll,首先要有JNI_MD.INC和JNI.pas,可以从http://www.pacifier.com/~mmead/jni/delphi/的Using the Java Native Interface with Delphi获得,这两个文件必不可少,里面包含了delphi对jvm,java数据类型等的定义及delphi和java之间类型的转换。dll的方法名必须符合 Java_packageName_className_MethodName的规则,如果Java类没有包名,则格式为Java_className_MethodName,方法的参数前两个是固定的(PEnv: PJNIEnv; Obj: JObject),方法声明后要使用stdcall关键字。然后使用关键字exports导出,例如:

















3. 文件部署。用delphi编译生成的dll有两个地方可以放置,只有这样jvm才能自动找到dll执行加载工作,一个是在%JAVA_HOME%/jre/bin下面,一个是Windows/system32下面。而这个dll用到的其它资源要放在Windows/system32下面,否则会出现dll依赖的资源找不到的异常。