loading a delphi dll in java using jna

吃可爱长大的小学妹 提交于 2019-12-07 08:00:37

问题


I'm a java newbie and I'm trying to load a delphi dll, and call functions from it.

Already tried in php using winbinder but it seems to be useless: reloading dll in winbinder (php gui) crashes program

Anyway I have this simple java code, and I can't figure out how to make it work. There are some examples over the internet, but none seems to be working for me.

Dll is 32bit, so is my windows, jdk and Eclipse. Simples function to use would be GetDllVersion. I would really apriciate any help.

I can't even load it, here is first error (there are couple popups following):

Here is the code:

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

      }
    }

EDIT: Native code library failed to load - this doesn't show on console.


回答1:


Don't load your DLL by hand, let JNA do the grunt work for it.

There are quite a few good resources when you search for Delphi JNA.

A few relevant Stack Overflow questions that explain some of the things you will probably bump into:

  • How can I call a Delphi function that returns a string using JNA?
  • function mapping delphi/pascal dll in jna handle and string
  • How would I map this Delphi function with JNA


来源:https://stackoverflow.com/questions/16501194/loading-a-delphi-dll-in-java-using-jna

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!