Problème JNI

mahni Messages postés 4 Date d'inscription samedi 15 juillet 2006 Statut Membre Dernière intervention 30 novembre 2007 - 29 août 2007 à 13:41
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 29 août 2007 à 17:58
Bonjour,
Avec JNI, j'ai tenter d'utiliser les méthodes contenu dans les dll


de windows(user32.dll) mais je ne comprend pas pourquoi j'ai


toujours cette erreur:


java.lang.UnsatisfiedLinkError: GetActiveWindow
 at apinative.testNative.GetActiveWindow(Native Method)


J'ai utilisé System.load("F:\WINDOWS\system32\user32.dll") mais


toujours le même erreur!oups
en VB j'ai testé et  ça marche bien avec:


Public Declare Function GetActiveWindow Lib "user32" Alias


"GetActiveWindow" () As Long......


 


public class testNative {


  public  native long GetActiveWindow ();


  static {
    System.loadLibrary("user32");
  }


public static void main(String[]args){
    testNative f = new testNative();
long i=  f.GetActiveWindow ();
System.out.println(i);
  }


}




J'ai lu presque tout les forum sur le net mais j'avais pas trouvé


une solution. faudrait-il passer par le C++?
help me!!!!!


 

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
29 août 2007 à 17:58
Salut,

ce que tu fais est
impossible... en gros si tu utilises JNI il te faut ajouter une
surcouche entre ta dll (ici user32) et le code java... donc pour
faire simple tu ne pourras JAMAIS appeler le code d'une librarie
dynamique directement dans un code java sans wrapper avec JNI.

Je ne sais pas si tu maitrises assez le C++ mais tu peux toujours regarder dans mes sources ICI comment je fais pour wrapper des fonctions système et java, sinon tu peux également regarder cette source ICI qui as le mérite d'être assez simple.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Rejoignez-nous