【问题标题】:loading a delphi dll in java using jna使用jna在java中加载delphi dll
【发布时间】:2013-05-11 19:57:16
【问题描述】:

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

已经用winbinder在php中试过了,但是好像没用:reloading dll in winbinder (php gui) crashes program

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

Dll 是 32 位的,我的 windows、jdk 和 Eclipse 也是如此。要使用的简单函数是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 - 这不会显示在控制台上。

【问题讨论】:

  • DLL 在其 DllMain 中引发异常。那是初始化时间。你能从另一个环境加载它吗?例如德尔福。或 C++。
  • 忘掉java吧,直到你可以写一个C程序来加载dll
  • 我有点期待它的到来,我需要听到(阅读)id :)。谢谢。我用 C++ 试试运气。

标签: java delphi dll jna


【解决方案1】:

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

搜索Delphi JNA有不少不错的资源。

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

【讨论】:

  • 这些都无济于事。 DLL 初始化引发了 Delphi 异常。
  • 感谢此信息。任何想法如何处理这个?由于我是 Java 新手,也许成为 C++/c# 新手会更容易:) - 我问是因为我对 dll 和 C 没有经验
  • 如果它在其他环境中也加载失败,那么最好的方法是开始尝试从一个简单的Delphi应用程序加载它,然后使用Delphi查看加载失败的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-06
相关资源
最近更新 更多