少しグーグルで検索しましたが、JavaクラスからJNAを使用してdllをアンロードする方法が見つかりません。そして、このdllを使用してUSBデバイスからデータを転送するためにdllを使用しているため、プログラム全体を閉じずに同じクラスでUSBデバイスを再利用するために、JavaクラスからDLLをアンロードする必要があります。JNAを使用してdllをロードする方法は次のとおりです
public interface UsbSensor extends Library {
UsbSensor INSTANCE = (UsbSensor) Native.loadLibrary(
(Platform.isWindows() ? "D:\\UsbDevice.dll" : "D:\\UsbDevice.dll"), UsbSensor.class);
int SearchDevices();
Pointer Startacquisition(String type);
}
そして
UsbSensor sdll = UsbSensor.INSTANCE;
DLLがロードされています。そして、ここで関数を使用する方法
sdll.SearchDevices();
sdll.Startacquisition();
そして今、これらの関数を使用した後、上記のコードを使用してdllを再度ロードする必要があります。これらの機能を再利用してください。
では、JNA を使用して動的に dll をアンロードする方法は?