dll メソッドを呼び出す必要があり、dll のソース コードがありません。JNI について読んでいて、コード (.h) に JNI ライブラリを入力するためのソースが必要であることを理解しました。
私の 2 回目の撮影は JNA ですが、DLL で何も変更する必要はありませんが、同じエラーが発生します。
テスト用に 2 つのクラスを作成しました。
インターフェース:
package icom;
import com.sun.jna.Library;
public interface IConectorT extends Library {
int StartConector(byte[] conectorStatus, String icomPath);
}
DLL メソッド呼び出し:
package icom;
import com.sun.jna.Native;
public class ConectorTJna {
public static void main(String args[]) {
IConectorT lib = (IConectorT) Native.loadLibrary("ConectorT", IConectorT.class);
int teste = lib.StartConector(null, "C:\\ICOM");
System.out.println("RESULT: " + teste);
}
}
メソッドを呼び出すと、次のlib.StartConector
ようになります。
スレッド「メイン」での例外 java.lang.UnsatisfiedLinkError: 関数 'StartConector' の検索中にエラーが発生しました: 指定されたプロシージャが見つかりませんでした。com.sun.jna.Function.(Function.java:179) com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:350) com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:330) com.sun.jna.Library$Handler.invoke(Library.java:203) で $Proxy0.StartConector(不明なソース) で icom.ConectorTJna.main(ConectorTJna.java:10) で