stl45
Messages postés5Date d'inscriptionjeudi 7 avril 2011StatutMembreDernière intervention18 mai 2011
-
18 mai 2011 à 09:51
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 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 ?
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 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.
stl45
Messages postés5Date d'inscriptionjeudi 7 avril 2011StatutMembreDernière intervention18 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).
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 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.
stl45
Messages postés5Date d'inscriptionjeudi 7 avril 2011StatutMembreDernière intervention18 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
stl45
Messages postés5Date d'inscriptionjeudi 7 avril 2011StatutMembreDernière intervention18 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 ?
stl45
Messages postés5Date d'inscriptionjeudi 7 avril 2011StatutMembreDernière intervention18 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.