Arama butonu
Bu konudaki kullanıcılar: 2 misafir, 1 mobil kullanıcı
0
Cevap
386
Tıklama
0
Öne Çıkarma
Java JNA (Java Native Access) dll içindeki fonksiyonu çalıştırma
E
11 yıl
Onbaşı
Konu Sahibi

[quote author=emre_serbes link=topic=43991.msg513296#msg513296 date=1403553492]
Java projemde C#'ta kullandığım bir dll'in fonksiyonunu kullanmak istiyorum fakat dll'i tanıtmama rağmen içindeki fonksiyonu çağıramıyorum. Dll dosyasını kendim oluşturmadım fakat sorunsuz çalışıyor. Ayrıca kodlarını da görmeniz için ekliyorum.

C#'ta şu kodu kullanarak fonksiyonu kullanabiliyorum
 
InputSimulator.SimulateTextEntry("Yazdırmak istediğim");
InputSimulator.SimulateKeyPress(VirtualKeyCode.VK_1); //Sorunum burda da var çünkü keycode gönderemiyorum javadan


Java'da denediğim kod bloğu ise şu şekilde

 
package javaapplication3;

import com.sun.jna.Library;
import com.sun.jna.Native;
import java.lang.String;
import java.io.IOException;

public class JavaApplication3 {


public interface WindowsInput extends Library {

void SimulateTextEntry(String s);
}

public static void main(String[] args) throws IOException, InterruptedException {

Thread.sleep(2000);
WindowsInput ins = (WindowsInput) Native.loadLibrary("InputSimulator.dll", WindowsInput.class);
ins.SimulateTextEntry("asdsad");

}
}


Java'da aldığım hata (Anladığım kadarıyla fonksiyonu çağırabilmek için düzgün metodu kullanmıyorum);

 
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'SimulateTextEntry': Belirtilen yordam bulunamadı.

at com.sun.jna.Function.<init>(Function.java:208)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:536)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:513)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:499)
at com.sun.jna.Library$Handler.invoke(Library.java:199)
at com.sun.proxy.$Proxy0.SimulateTextEntry(Unknown Source)
at javaapplication3.JavaApplication3.main(JavaApplication3.java:20)
Java Result: 1


Kullandığım dll dosyası ve kodları için :

http://inputsimulator.codeplex.com/

http://inputsimulator.codeplex.com/SourceControl/latest#README.md

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.