aide pour une dll

foulla
aide pour une dll

salut tt le monde
je travaille avec les dll et je ne sais pas ou positionner ces dll pour qu'elle soit accessible par le projet (je travaille avec jbuilder)
en fait j'ai essaye ce bout de code
///////////code///////////////////
package project;

public class ClearScreen{
public static native void clear();
static{
System.loadLibrary("ClearScreen");
}
}
///////////////////////////////////////
resultat de compilation
java.lang.UnsatisfiedLinkError: clear

at project.ClearScreen.clear(Native Method)

at project.Test.main(Test.java:19)

Exception in thread "main"

//////////////////////::::::
j'ai déja creé la dll
j'ai besoin d'aide urgente merci

fredericmazue

Quote:

resultat de compilation
java.lang.UnsatisfiedLinkError: clear

Résultat de compilation ça m'étonnerait. Disons erreur àl'exécution plutôt.

La même question a déjà été posée plusieurs fois dans ce forum, notamment dans le fil "JNI dans Netbeans". Tu y trouveras la réponse que tu cherches.

gaby
si tu reussi

salut si tu réussis j'aimerais bien que tu explicites la solution en détail
je suis au bord des larmes avec ce probleme
merci d'avance

foulla
accord

j'en serais ravie de le faire mais ça fait deux semaines q je cherche et pas de reponse pas de solution

foulla
reponse

salut tt le monde
pour la solution qu'on m'a propose dans jni net beens je dirais que j'ai essaye l'option -Djava.library.path
ttjrs la meme erreur se produit
pour le reste je n'ai pas a develpoppez la dll j'ai une prete je travaille avec kernel 32 donc si vous avez une solution je vous attend c'est tres urgent
merci

fredericmazue

Quote:

kernel 32

Hou là là....

Kernel32... la librairie du noyau de Windows, rien que ça.

Cette librairie n'a jamais été prévue pour être chargée par la JVM. Ca ne PEUT PAS marcher. PAS avec le Java de Sun.

Quand on passe par la JNI la lib doit être compilée spécialement.

foulla
demande d'aide

salut tt le monde
st ce que vous pouvez mz specififez les etaps a faire je vous serais ravie
mercie d'avance

fredericmazue

Les étapes pour quoi faire ?
Pas recompiler Kernel32 quand même :?: :?: :twisted: :twisted:

Si j'ai bonne mémoire dans un autre post tu disais vouloir appeler SetCurrentDirectory;
Tu sais pour positionner le répertoire courant il n'est pas besoin de passer par du code natif. Tu peux le faire en Java, fort heureusement

foulla
reponse

non pour executer ce programme que dois je faire j'en ai besoin en plus c pas moi qui la fait on me l' donne pour travailler avec
j'ai besoin de votre aide
merci

fredericmazue

C'est pourtant bien toi qui avait demandé posté un exemple avec un chargement de kernel32 et appel à l'API SetCurrentDirectory

C'était là:

[url]
http://www.programmez.com/forum/viewtopic.php?t=184
[/url]

Au risque de me répéter un peu lourdement l'exemple que tu as donné était en Java Microsoft alors que tu dis travailler sous JBuilder donc à priori en "vrai" java, celui de Sun.

En Java de Sun tu NE PEUX PAS charger kernel32 dans la JVM, une fois pour toutes.

Si tu veux appeler des APIs WIN32 tu va devoir faire comme tout le monde, c'est à dire écrire une librairie native intermédiaire en C ou en C++ et compilée afin que la JVM Sun puisse la charger, puis dans cette librairie native appeler les API que tu veux.

Il y a un exemple d'une telle librairie sur ce forum. Prend exemple dessus. Et puisque tu es sous Windows, je t'avertis que les compilateurs Windows décorent habituellement les noms de fonctions, ce qui va t'obliger en plus à te plonger dans leurs docs pour contourner le problème. Je te renvoie aux explications données dans un autre post.

Maintenant je dois dire que j'ai du mal à comprendre ce que tu veux faire. une fois tu nous dis que tu as une libriairie toute prête kernel32 ce qui est un non sens, dans la même discussion tu essaies de charger une librairie CleanScreen.
J'ai l'impression que tout ça est un peu confus dans ta tête. Que dois tu faire exactement ?

foulla
reponse

salut
merci de votre réponse ça m'eclaire un peu les choses ds ma tete
bon je vous dis exactment ce que je veux faire
en realite je veux travailler avec une dll de windows
j'ai cru qu'au lieu en suivant les tutoriaux qui m'indique comment faire moi meme une dll que kernel32 c'est elle qu je dois travailler avec et que je n'ai pas besoin de preparer une
mais d'apres ce que j'ai compris la je dois appele kernel 32 depuis une dll que j'ecrive moi meme
est ce que vous pouvez me specifier un exemple guidé
merci