当前位置:首页>开发>正文

如何在java中使用jna.jar调用Delphi写的dll 怎样用java调用delphi编写的dll文件里的函数

2023-05-03 16:44:16 互联网 未知 开发

 如何在java中使用jna.jar调用Delphi写的dll 怎样用java调用delphi编写的dll文件里的函数

如何在java中使用jna.jar调用Delphi写的dll

//delphi代码
procedure  Hello() stdcall
begin
//  Writeln(Hello)
  ShowMessage(Hello)
end

procedure  HelloInt(i: integer) stdcall
begin
  ShowMessage(Hello  IntToStr(i))
end

procedure HelloRRR(var i: integer) stdcall
begin
  ShowMessage(Hello  IntToStr(i))
  i := 999
end

function HelloStr(str: Integer): Integer stdcall
var
  s: string
begin
  Result := -1
  s := IntToStr(str)
//  Writeln(Hello s)
  ShowMessage(Hello s)
 // s :=  44034479041101200025318.xml
  str := 100//PChar(s)
  Result := 0
endjava代码
public interface CLibrary extends Library {
CLibrary INSTANCE = (CLibrary) Native.loadLibrary("testdll", CLibrary.class) // 引入库文件

public int HelloStr(int i) // 声明方法
public void Hello()
public void HelloInt(Integer i)
public void HelloRRR(Integer i)
}

public static void main(String[] args) {
CLibrary.INSTANCE.Hello() // 成功
CLibrary.INSTANCE.HelloInt(Integer.valueOf(16)) // 成功
Integer k = 18
CLibrary.INSTANCE.HelloRRR(k) // 失败
System.out.println("k=" k) 
System.out.println("java call dll result=" CLibrary.INSTANCE.HelloStr(20)) // 失败
}

怎样用java调用delphi编写的dll文件里的函数

如果有一个现有的 .dll/.so 文件,如果使用 JNI 技术调用,首先需要另外使用 C 语言写一个 .dll/.so 共享库,使用 SUN 规定的数据结构替代 C 语言的数据结构,调用已有的 dll/so 中公布的函数。
然后再在 Java 中载入这个适配器 dll/so ,再编写 Java native 函数作为 dll 中函数的代理。

java怎麼在web中怎麼调用Delphi的dll文件?

12. 只有支撑WEB的ISAPI类型的DLL可以按网页的路径链接,1. 广泛的DLL估计没法调用; 但DELPHI的ISAPI DLL须在IIS网站中;把dll文件封装成ocx文件,然后注册到注册表中,在web页面上用object惹人进去就可声调用dll中的函数了。对着器械略有懂得。

随便看看