mahni
Messages postés4Date d'inscriptionsamedi 15 juillet 2006StatutMembreDernière intervention30 novembre 2007
-
29 août 2007 à 13:41
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 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!!!!!
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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 ..."