我需要从Java代码调用外部DLL库函数.我使用Netbeans 7.2.我的dll的功能是:
Boolean isValid(string word)
List<String> getWords(String word)
Run Code Online (Sandbox Code Playgroud)
我偶然发现了"从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
| 归档时间: |
|
| 查看次数: |
34273 次 |
| 最近记录: |