【发布时间】: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++ 试试运气。