Erreur 53 : Fichier introuvable

ArnaudEIC Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 17 septembre 2007 - 28 févr. 2007 à 10:57
ArnaudEIC Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 17 septembre 2007 - 2 mars 2007 à 09:53
Bonjour,
j'ai l'erreur suivante : "Erreur 53 : Fichier introuvable : toto.dll" sur l'ordinateur d'un de mes clients et je n'arrive pas a reproduire l'erreur donc j'ai du mal a trouver des pistes pour la corriger. Ce fichier toto.dll est une dll a moi qui contient des fonction que je lance a partir de ma dll VB. Et le message s'affiche dès que j'essaye d'appeler une des fonctions de cette dll.
La dll est bien dans le répertoire de l'application, j'ai mis dans le doute le chemin ds la dll en dur dans le code mais cela n'a rien changé, j'ai vérifier les dépendance de toto.dll et tout les fichiers dont elle a besoin ont l'air d'être présent donc je n'ai plus trop d'idée
le problème est apparement survenu suite a plusieur mise a jour de windows ou de office et j'ai mis toute les mise a jour sur mon ordi mais je n'ai toujours pas l'erreur.
Donc si quelqu'un a des idées de piste a explorer je suis preneur.
merci d'avance !

14 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 févr. 2007 à 11:10
1) Tu as bien enregistré cette dll par Regsvr32 ?
2) fait-elle elle-même appel à d'autres Dll ou à des OCX ?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 févr. 2007 à 11:13
Question bete : si tu as mis le chemin d'accès en dur dans le code, ton client ne sera pas aller mettre la dll ailleurs que dans le répertoire ou elle doit etre ????

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
ArnaudEIC Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 17 septembre 2007
28 févr. 2007 à 11:20
J'ai fais des patchs avec les fichiers dont j'avais besoin pour être sur qu'il sois placé au bonne endrois donc même si le client les avais déplacé je les ai remi depuis.
Sinon j'ai utilisé Depency Walker pour vérifier que toutes les dépendances de ma dll été bien présente.
Le regsv32 je l'ai fais pour ma dll VB car je sais que sinon cela ne marche pas mais je ne l'ai pas fais pour ma dll "toto" qui elle est faite en c++ et qui n'en a jamais eu besoin pour fonctionner.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 févr. 2007 à 11:42
Bien sur que si, qu'il te faut l'enregistrer (qu'elle soit écrite en c++ ou non) !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 févr. 2007 à 12:02
"...

Bien sur que si, qu'il te faut l'enregistrer (qu'elle soit écrite en c++ ou non)..."

Ah bon ???

Personellement les dll type api, je n'ai jamais eu besoin de les enregistrée pour qu'elles fonctionnent. Je n'enregistre que les dll ActiveX.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 févr. 2007 à 13:33
Bonjour Casy;

Sur ta machine : oui, tu as sans aucun doute raison (enregistrement automatique à la création)
Mais là : il s'agit d'une dll à utiliser sur une machine où elle n'a pas été créée.


 
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
28 févr. 2007 à 13:44
Surtout (et eon ne le sait pas) s'il s'agit d'une dll COM
0
ArnaudEIC Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 17 septembre 2007
28 févr. 2007 à 13:59
C'est une dll classique, faite sous c++builder et je n'ai jamais eu besoin d'enregistrer ce genre de dll ( d'ailleur je viens d'essayer et l'enregistrement retourne une erreur ) il n'y a que ma dll vb6 que je suis la on est d'accord obligé d'enregistrer.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
1 mars 2007 à 03:38
jmfmarques
-> une vraie dll (c cpp) n'a pas a être enregistrée !
elle le sont pas la simple déclaration comme une API (ne pas oublier bien sûr, et la dll soit avoir une sortie STD___)
seules les activeX (dll et ocx) doivent être enregistrée (registre)

ArnaudEIC -> dll bien déclarée (comme API)?, et sans chemin??
et pas de mauvaise version? une appli VB cherche la dll (vraie) dans le rep de l'appli, sinon dans rep System32 et enfin dans rep Windows (si pas trouvée entre temps)

++
PCPT [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
ArnaudEIC Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 17 septembre 2007
1 mars 2007 à 08:30
La dll est dans le répertoire de l'appli et en plus de ça, avant de charger la dll c++ je rajoute dans le PATH le chemin. Sinon je pense que ma dll est bien déclaré et que c'est bien la bonne version vu qu'elle fonctionne sur d'autre poste.
Le plus étrange c'est que chez ce client le logiciel est sur un serveur et il l'utilise de plusieurs ordinateurs différents. Et il y en a certain qui fonctionne ! comme si une mise a jour windows avais modifier quelque chose sur certain poste mais je ne vois pas trop quoi.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 mars 2007 à 08:53
Assures toi de n'avoir AUCUN doublon de ta dll...
certains s'amusent parfois a placer les dll dans System32, et dans le repertoire de l'appli, ce qui fait que l'on se retrouve avec n dll, pas forcément de la même version qui plus est... pour debugger, c'est sympa ^^

Pas besoin de jouer avec le PATH...
si elle est dans le repertoire de la'ppli, ca roulera.

voici l'ordre opéré par LoadLibrary (la proc qui charge les dll)
- repertoire de l'appli (attention, si sous l'IDE de VB6, sera la dossier de VB6.exe)
- chemins situés dans la PATH

tu peux tenter de regarder ce que renverrai un
LoadLibrary("toto.dll")
chez ton client. Si 0, tu as un soucis...

NB: j'espere que ta delcaration d'API est :
Declare Function MaFonction Lib "Toto.dll" () As Long
et pas :
Declare Function MaFonction Lib "C:\MonDossier\Toto.dll" () As Long

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 mars 2007 à 09:03
Attention, si le logiciel est utiliser depuis un serveur, la dll doit etre présente en local sur le pc d'utilisation.

Un executable n'est jamais directement utilisé depuis le serveur. Quand tu le lance depuis un serveur, il est d'abords téléchargé puis executé en mémoire mais en local sur la machine. Il faut donc que toutes les épendances utilisées soient déjà présentes en local sur la machine. Ou alors que l'executable sache ou aller les chercher exactement sur le serveur (chemin du serveur en dur dans le code)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
ArnaudEIC Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 17 septembre 2007
1 mars 2007 à 09:17
Pour les doublons cela fais parti des choses ou j'avais déja eu le souci donc j'ai effectivement regardé. Après je suis pas sur l'ordi donc je ne peux que faire confiance.....
Ensuite j'ai bien déclaré toute mes fonction de la façon suivante : Declare Function MaFonction Lib "Toto.dll" () As Long
Sinon j'ai envoyé hier un fichier test ou je charge toute les librairies dont dépend la DLL qui n'arrive pas a se charger.
j'attend des nouvelles du client pour ça.
Pour ce qui est du fait que cela sois en serveur il faut que je demande a mes collègues car je ne sais pas trop comment tout ça c'est géré, je vous tient au courant.
En tout cas un grand merci de vous pencher autant sur mon problème
0
ArnaudEIC Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 17 septembre 2007
2 mars 2007 à 09:53
j'ai trouvé la solution à mon problème. Et la solution se trouvai bien du côté des doublons ! mais pas de ma dll qui refusai de se chargeai mais d'une dll qui été une de ces dépendances. Je fais donc des loadLibrary au lancement de mon appli pour être sur qu'il charge le bon fichier et pas une autre version qui traine sur le poste.
En tout cas merci a tous de m'avoir aidé !
@++
0
Rejoignez-nous