【发布时间】:2012-01-28 13:01:16
【问题描述】:
通过运行System.loadLibrary("myAPI"),我验证了DLL文件“myAPI.dll”可以成功加载到我的Eclipse Java项目中。现在我需要从我的 Java 代码中调用这个 DLL 文件中指定的方法。为此,我将 JNA 添加到我的 Java 项目中。然后我编写了下面给出的代码 sn-p,它应该能够获取类 IProject 和 ProjectFactory(在 DLL 文件中指定)的实例。
我仍然不明白如何使用 JNA 正确实现这一点。我检查了不同的线程,例如this one,但我检查的那些没有提供答案。非常感谢任何帮助。谢谢。
import com.sun.jna.Library;
import com.sun.jna.Native;
public class MyClass {
public interface myAPI extends Library {
//...
}
void LoadProj() {
myAPI api = (myAPI) Native.loadLibrary("myAPI",myAPI.class);
String fileName = "xxx.sp";
IProject project; // this is wrong but shows what I am trying to do
try {
project = ProjectFactory.LoadProject(fileName);
}
catch (Exception ex) {
MessageBox.Show(this, ex.Message, "Load failure");
}
}
}
【问题讨论】:
-
看en.wikipedia.org/wiki/Java_Native_Access上的例子,非常简洁。
-
这是您在一小时内就整体主题发布的第三个问题。要学会自己做这件事,您将必须培养使用可用文档和示例并自己完成工作的能力。一方面,我不太愿意帮助某人,如果他们看起来没有自己的努力。此外,“我不知道如何实施”不是一个好的论坛问题。如果您需要教程,请在网上搜索教程。如果您有具体问题,请在此处发布。