java - باستخدام جنا لربط دلل مخصص



dll jna (1)

كيف يمكنني الوصول إلى وظائف .lib / .dll مخصصة باستخدام جنا؟ هل يمكن لشخص ما أن يقدم مثالا؟

شكرا لكم.

https://code.i-harness.com


مثال ( من ويكيبيديا ):

import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.Native;

/** Simple example of Windows native library declaration and usage. */
public class BeepExample {
   public interface Kernel32 extends StdCallLibrary {
       // FREQUENCY is expressed in hertz and ranges from 37 to 32767
       // DURATION is expressed in milliseconds
       public boolean Beep(int FREQUENCY, int DURATION);
       public void Sleep(int DURATION);
   }
   public static void main(String[] args) {
    Kernel32 lib = (Kernel32) Native.loadLibrary("kernel32", 
           Kernel32.class);
    lib.Beep(698, 500);
    lib.Sleep(500);
    lib.Beep(698, 500);
   }
}

في هذه الحالة، ونحن تحميله من مكتبة "kernel32.dll". آمل أن يجعل هذا جنا أكثر وضوحا.

إديت: سأشرح التعليمات البرمجية: تحتاج إلى تعريف واجهة (الذي يمتد com.sun.jna.Library) مع الوظائف التي تحتاج إليها من المكتبة. ثم اتصل com.sun.jna.Native.loadLibrary ("ليبرارينام"، InterfaceName.class). وأخيرا، تخزين الإخراج في متغير مع نوع واجهة. مجرد استدعاء وظائف من هذا المتغير.





jna