如何从java代码调用外部dll函数

Tem*_*emp 7 java dll call jna

我需要从Java代码调用外部DLL库函数.我使用Netbeans 7.2.我的dll的功能是:

Boolean  isValid(string  word)
List<String> getWords(String  word)
Run Code Online (Sandbox Code Playgroud)

我正在关注这个例子.但我不知道如何声明我的dll功能.我发现了另一个链接.但它对我不起作用.

mon*_*noo 7

我偶然发现了"从Java调用DLL"的问题,并且首先对复杂性感到沮丧.然而,有一个优雅的解决方案(也可能对那里的人们在processing.org栖息地感兴趣..)鉴于问题的相当"一般"形式(也许,降级是不合理的),我想,将指出一个相当容易的解决方案.换句话说,一个解决方案可以避免使用头文件,额外的转换等来搞乱aronud,就像源代码不一定可用一样.

我对此的建议是JNA(https://github.com/twall/jna),它基本上是JNI的简化包装器.它工作得很好,类型映射很简单(例如pchar = lpcstr buffer - > string),虽然我只使用它来使用Windows DLL和我自己使用Delphi-Pascal创建的C风格的DLL.唯一要考虑的是返回值应该通过函数而不是"out"标记的引用变量导出.问题已经指向一个链接源,为此提供了一个示例(因此,JNI的答案可能在这里放错了位置).请注意,我提供的链接还包含用于传输数组和指针的axamples.


小智 1

我前段时间确实写过示例教程,也许会有帮助。

http://wendro.blogspot.com/2010/03/jni-example-eclipse-dev-cpp.html

  • 这是一个仅链接的答案,通常是不可接受的。 (2认同)