java - कस्टम डीएलएल से जोड़ने के लिए जेएनए का इस्तेमाल करना



dll jna (1)

मैं JNA का उपयोग कर कस्टम .lib / .dll फ़ंक्शन कैसे प्राप्त करूं? क्या कोई एक उदाहरण प्रदान कर सकता है?

धन्यवाद।


उदाहरण ( विकिपीडिया से ):

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" लाइब्रेरी से लोड करते हैं। मुझे उम्मीद है कि यह JNA स्पष्ट बनाता है

संपादित करें: मैं कोड को समझाऊंगा: आपको एक इंटरफेस (जो कि com.sun.jna.Library को फैली हुई है) को परिभाषित करने की आवश्यकता है, जिसमें आपको लाइब्रेरी से कार्य की आवश्यकता होती है। उसके बाद, com.sun.jna.Native.loadLibrary ("लाइब्रेरी नाम", इंटरफ़ेसनाम.क्लास) को कॉल करें। अंत में, एक चर में आउटपुट को इंटरफ़ेस के प्रकार के साथ स्टोर करें। बस उस चर से फ़ंक्शन कॉल करें





jna