OVH Cloud OVH Cloud

foutu dll

4 réponses
Avatar
Chat
merci pour les infos, mais j'ai tjrs un pb avec ce foutu dll, j'obtiens
ceci comme exception malgré que le dll soit dans le meme repertoire que
l'appli:
java.lang.UnsatisfiedLinkError: displayHelloWorld

est ce que vous savez d'ou ça peut venir? est ce qu'il y a une option
quelque part dans un menu de jbuilder pour lui dire ou prendre les
librairies dynamiques??
Merci

4 réponses

Avatar
narberd
Chat wrote:

merci pour les infos, mais j'ai tjrs un pb avec ce foutu dll, j'obtiens
ceci comme exception malgré que le dll soit dans le meme repertoire q ue
l'appli:
java.lang.UnsatisfiedLinkError: displayHelloWorld

est ce que vous savez d'ou ça peut venir? est ce qu'il y a une option
quelque part dans un menu de jbuilder pour lui dire ou prendre les
librairies dynamiques??
Merci
Faut mettre la dll dans le PATH, c'est tout simple (system32, par exemple ).


Ensuite, faut s'assurer que la dll contient bien une fonction qui
s'appelle 'displayHelloWorld'. Faut aussi faire attention aux
décorations amusantes de C++, par exemple - la décoration, c'est le
bazar que rajoute C++ au nom des fonction pour indiquer les paramètres
et leur type.

Y a un truc bien sous windows et qui coûte pas, c'est 'Dependency
Walker' qui permet de voir les noms exportés des dll.

Reprenons un peu. Vu le nom de ta fonction, tu pompe l'exemple d'un
bouquin. Assures toi que tu as compilé comme c'est dit dans le bouquin.
Ensuite, JBuilder n'est pour rien dans l'affaire.

Narberd.

Avatar
narberd
Chat wrote:

merci pour les infos, mais j'ai tjrs un pb avec ce foutu dll, j'obtiens
ceci comme exception malgré que le dll soit dans le meme repertoire q ue
l'appli:
java.lang.UnsatisfiedLinkError: displayHelloWorld

est ce que vous savez d'ou ça peut venir? est ce qu'il y a une option
quelque part dans un menu de jbuilder pour lui dire ou prendre les
librairies dynamiques??
Merci
Si t'avais un bout du code Java (la classe qui contient la méthode

native, en complet et le code C/C++ de la fonction native), ça serait
plus simple.

Narberd.

Avatar
Chat
narberd wrote:
Chat wrote:

merci pour les infos, mais j'ai tjrs un pb avec ce foutu dll,
j'obtiens ceci comme exception malgré que le dll soit dans le meme
repertoire que l'appli:
java.lang.UnsatisfiedLinkError: displayHelloWorld

est ce que vous savez d'ou ça peut venir? est ce qu'il y a une option
quelque part dans un menu de jbuilder pour lui dire ou prendre les
librairies dynamiques??
Merci


Si t'avais un bout du code Java (la classe qui contient la méthode
native, en complet et le code C/C++ de la fonction native), ça serait
plus simple.

Narberd.

Hello, j'ai pas posté mon message au bon endroit ce matin, donc en fait

il manquait un bout a ma question.
Mon (gros?) pb c'est qu'effectivement c l'exmple du tutorial sun, en
ligne de commande pas de souci c ok, mais sous Jbuilder pas moyen de lui
faire trouver le dll, et vu que sous dos ça marche , je suppose qu'il
n'y pas d'erreur dans le code.
La dll est bien dans le path, mais rien a faire ça veut pas marcher.
Ta une idée de ce que ça peut etre????
Merci


Avatar
narberd
Chat wrote:

Hello, j'ai pas posté mon message au bon endroit ce matin, donc en fa it
il manquait un bout a ma question.
Mon (gros?) pb c'est qu'effectivement c l'exmple du tutorial sun, en
ligne de commande pas de souci c ok, mais sous Jbuilder pas moyen de lu i
faire trouver le dll, et vu que sous dos ça marche , je suppose qu'il
n'y pas d'erreur dans le code.
La dll est bien dans le path, mais rien a faire ça veut pas marcher.
Ta une idée de ce que ça peut etre????
Merci


J'ai été emmerdé avec NT 4 mais jamais avec 2000. Comme je migrais à
2000, j'ai pas approfondi le problème.

Mais je reste persuadé que c'est un problème assez con du style : je
modifie la dll qui est toujours chargée en mémoire, donc je dois
redémarrer la machine. Et là, JBuilder est peut-être en cause dans le
sens où pour le debug ou autre, la dll est cachée en mémoire et ne veut
plus redescendre.

Poser la dll dans le répertoire du projet est aussi une solution. Mais
dans ce cas, il faut bien tester sur une machine 'vierge' que l'appli
distribuée au client fonctionne bien.

Autre chose, assures-toi que le JDK en ligne de commande et avec
JBuilder sont bien les mêmes.

Dernière chose - je crois bien que c'est la dernière - il faut bien
regarder comment JBuilder gère les projets. Il fait par défaut, sur l es
nouveaux projets, un répertoire source (src) et un répertoire pour le s
classes depuis le répertoire du projet. Il faut peut-être bien placer la
dll à côté de la classe compilée qui l'enrobe.

Après, je sais plus.

Bon courage,

Narberd.