我有一个用 C++ 编写的库(实际上是一个 Firefox 插件,xyz.dll),我需要从 Java 访问它的方法。
public class AccessLibrary {
public interface Kernel32 extends Library {
public void showVersion();
}
public static void main(String[] args) {
Kernel32 lib = (Kernel32) Native.loadLibrary("xyz.dll", Kernel32.class);
lib.showVersion();
}
}
执行时出现以下错误:
java -jar dist/accessLibrary.jar
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'showVersion': The specified procedure could not be found.
在原生库源码中,方法是这样定义的
void CPlugin::showVersion() {
/* ... */
}
我对 Java 很陌生。可能是我缺少一些基本的东西。调查了类似的问题,但没有一个能解决我的问题。
忘了说我使用的是 Windows 7 64bit 和 Java 7。