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 を使用していることを忘れていました。