Modifier chemin d'accès à une dll

stl45 Messages postés 5 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 18 mai 2011 - 18 mai 2011 à 09:51
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 18 mai 2011 à 14:44
Bonjour,
Je débute en VB5. Je viens de finir mon application et je souhaites lancer l'exe sur une autre machine (que celle qui a servi à développer).
J'ai un message d'erreur comme quoi le fichier vb5fr.dll est manquant.

Ma question : est-il possible de mettre cette dll dans le même répertoire que l'exe et de modifier le chemin d'accès (dans les propriétés du projet) pour que la dll ne soit pas cherchée dans C:\windows\system32 ?
Si c'est possible, comment faire ?

Sinon, j'avais pensé à faire un setup mais je ne trouve pas l'assistant déploiment et empaquettage sur mon PC. De plus,mon appli est succeptible d'être lancée sur du NT et du XP (donc chemin d'accès dll différents). Une idée ?

Merci d'avance

10 réponses

Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 mai 2011 à 10:05
Bonjour,

En théorie il est possible de mettre les DLL où l'on veut mais ce n'est pas recommandé.

Je te conseille de la mettre dans Windows\System32 cela te simplifiera la vie.

Quant à l'assistant Empaquetage et déploiement, je ne sais pas s'il était livré avec VB5 (je dis bien CINQ et non SIX), mais il est à oublier. A la place, utilises InnoSetup et son compère ISTools, gratuit mais sans problèmes.

Tu trouveras un tutoriel sur ce site ainsi qu'un lien pour le télécharger.


Calade
0
stl45 Messages postés 5 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 10:12
Tout d'abord merci de cette réponse rapide.

J'ai pris note de ton conseil de mettre la dll dans Windows\System32,ceci dit si je souhaites quand même mettre la dll ailleurs, comment je peux faire ?

Je préfère cette solution au setup ou à la copie dans Windows\System32, car l'idée serait de faire un peu comme un exe portable (sans rien à installer) on clic sur l'exe et c'est parti.

a priori cette dll ne sera utilisée que par mon appli (sinon elle serait déjà présente sur le poste).
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 mai 2011 à 10:22
a priori cette dll ne sera utilisée que par mon appli (sinon elle serait déjà présente sur le poste)


Ce n'est pas une preuve car les applis VB5 ne doivent pas courir les PC vu leur âge.

Quant à l'idée de l'exe portable, elle serait bonne mais oublie, VB n'a pas été conçu pour ça. Que ce soit VB5, VB6 et certainement .NET, il y a des dépendances qui doivent être enregistrées et dont le chemin d'accès doit être connu du système, ce qui nécessite un Setup.


Calade
0
stl45 Messages postés 5 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 10:31
Bon je vais voir pour faire un setup avec les logiciels que tu m'as indiqué.

Ceci dit, juste pour information ; j'ai lancé mon appli depuis un périphérique externe, une fois vb5fr.dll dans windows\system, elle s'execute sans problème. Je dois avoir que peu de dépendance (vu que l'appli est destinée à NT, j'ai utilisé les choses les plus basiques possibles)

merci

bonne journée
0

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

Posez votre question
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
18 mai 2011 à 10:39
Tu as au minimum 4/5 DLL dépendantes qu'il te faura rajouté à la main à ton script d'installation.

Va sur le site d'InnoSetup, il raconte exactement ce qu'il faut faire.


Calade
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 mai 2011 à 10:47
oui, dans le repertoire de l'exe, sans soucis.

c'est Windows qui donne indique ou trouver les Dll...

si définit, repertoire dll (voir SetDllDirectory)
repertoire de l'exe
repertoire du %PATH% (System32, etc.)



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
stl45 Messages postés 5 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 11:12
bonjour Renfield,
Donc je peux mettre la dll dans le répertoire de l'exe.
L'appli va chercher dedans toute seule, ou il faut que je lui définisse quelque chose ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 mai 2011 à 13:33
non, rien de particulier a faire...

derrière sera appelé l'API LoadLibrary, que Windows gérera comme il se doit


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
stl45 Messages postés 5 Date d'inscription jeudi 7 avril 2011 Statut Membre Dernière intervention 18 mai 2011
18 mai 2011 à 14:35
Désolée ,je débute en VB.
j'ai bien défini l'API :
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpPathName As String) As Boolean

mais je ne sais pas trop où appeler cette fonction. A savoir mon projet est de type executable standard, je n'ai pas de procedure main.
J'ai essayé de l'appeler dans le form_load() de ma première fenetre :
LoadLibrary (".\Vb5fr.dll") mais ca ne fonctionne pas.
Et si je le mets en dehors d'une procedure pour que ce soit genre "global" j'ai une erreur de compilation.

Je ne sais pas comment faire.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 mai 2011 à 14:44
Pas a toi de faire cet appel, je donnais cet info, mais c'est VB et Windows qui jouent a cela

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Rejoignez-nous