4

我是一个java新手,我正在尝试加载一个delphi dll,并从中调用函数。

已经在 php 中使用 winbinder 尝试过,但它似乎没用:reloading dll in winbinder (php gui) crash program

无论如何,我有这个简单的 java 代码,但我不知道如何使它工作。互联网上有一些例子,但似乎没有一个对我有用。

Dll 是 32 位的,我的 windows、jdk 和 Eclipse 也是如此。Simples 使用的函数是GetDllVersion. 我真的很乐意提供任何帮助。

我什至无法加载它,这是第一个错误(下面有几个弹出窗口):

在此处输入图像描述

这是代码:

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;
import com.sun.jna.Platform;
import com.sun.jna.*;

public class Main {

      static {
        try {
            System.load("C:/workspace/XmlDownlaoder/xxxxxxxDLL.dll");
        } catch (UnsatisfiedLinkError e) {
          System.err.println("Native code library failed to load.\n" + e);
          System.exit(1);
        }
      }

      public static void main(String argv[]) 
      {
        //how to call functions here? - there will be many functions, and final one should generate xml in return

      }
    }

编辑:Native code library failed to load- 这不会显示在控制台上。

4

1 回答 1

1

不要手动加载您的 DLL,让 JNA 为它完成繁重的工作。

当您搜索Delphi JNA时,有很多很好的资源。

一些相关的 Stack Overflow 问题解释了您可能会遇到的一些事情:

于 2013-05-11T21:33:01.497 回答