VB6 App qui ne ofnctionne pas sur un autre ordinateur [Résolu]

Signaler
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
-
Bonjour

Je me suis créé un programme VBA sous VB6. Ce code est utilisé pour travailler avec Autocad 2002.
J'ai ajouter un référence "AutoCAD 2000 Type Library". Cette référence utilise l;e fichier Acad.tlb qui est sur toute les ordinateur du bureau. Ce fichier est exactement le même fichier que j'ai sur mon ordinateur.

Comment est il possible que mon programme fonctionne sur mon pc et non sur les autres PC. Existe-t-il un fichier, comme en vb.net, style executable pour installer les framework mais en VB6 ?
Si non, comment faire pour résoudre mon problème ? J'installe VB6 sur tous les postes ? J'aime pas vraiment cette idée

merci de votre aide

18 réponses

Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
1
salut
autre idée que d'enregistrer tout :

private sub form_load()
on error goto erreur
dim lNombre1 as long
dim lNombre2 as long
dim lNombre3 as long
1  let lNombre = 12
2  let lNombre2 = 0
3  let lNombre3 = lNombre / lNombre2 ' erreur ici !
exit sub
erreur:
msgbox "Erreur dans la procédure form_load dans la ligne " & erl & vbcrlf & err.description
end sub



sa te donne dans quel procédure et dans quel ligne tu a l'erreur je crois que c'est beaucoup plus mieux.

Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Salut,

Utilise InnoSetup par exemple pour faire un installeur de ton application (voir mes tutoriaux à ce sujet).
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut
Un programme VBA sous VB6 qui utilise des Framework .Net ?
Gros mélange de tout et de rien.

Il me semble que, en VB6, les références de type TLB ne servent que lors de la création et sont inutiles après compilation, une fois que tu as créé ton EXE.

Si ton programme ne marche pas, ne te dit-il pas pourquoi ?
Une erreur ? laquelle ?
Si tu as mal ou pas géré les erreur, te voilà bien avancé ...

Comme on le dit à tour de bras sur le forum, un EXE issu de VB6 ne se copie pas 'comme ça' sur une autre machine. Il faut l'installer.
Pour cela, il y a l'empaquetage fourni avec VB6 ou bien, comme le précise Dark, InnoSetup, plus pro mais de maniement plus délicat.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Salut,

Petite précision par rapport aux propos de Jack : InnoSetup, couplé avec ISTools permet de lire les fichiers générés par l'assistant d'empaquetage de vb : tu génères un installeur avec l'assistant de vb, tu le lit avec istools, et tu peux compiler l'installeur innosetup (tout est expliqué dans mes tutoriaux).

Car le setup généré par l'assistant de vb est comme qui dirait, complètement dépassé, et produit des installeurs qui marchent un coup sur 10 (tout dépend du système sur lequel on installe, et des bibliothèques à installer).
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
Je confirme que les .TLB ne font pas partie des livrables.


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
Encore une précision par rapport à ce qu'ils ont dit : installe le SP6 de VB6 en premier lieu. Si tu ne le fais pas ton installeur sera dangereux pour tout OS > NT4.
---
VB.NET is good ... VB6 is better
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
merci à tous je vérifie cela dès maintenant.

P.S. Jack: C'était a titre d'exemple le framework .Net et VB6...
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
DARKSIDIOUS
Autre question..
J'utilise toujours InnoSetup pour mes programme en Vb.Net et ca fonctionne très bien.

Avec VB6 je suis moins habille. Dans le sens de quel fichier que je dois inclure pour crééer mon exécutable.

Je cré mon .EXE avec VB6 et ensuite je vais avec innosetup ?

Je suis un peu perdu... Je vérifie tout de même dans les tutoriaux et si tu penses a un truc pour m'aider, gêne toi pas...

merci encore
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Salut,

Tout est détaillé dans mes tutoriaux : utilisation de l'assistant d'installation de vb6, lecture du fichier .lst par ISTools et compilation avec innoSetup.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
rebonjour

Je regarde les 2 tutoriaux que tu as mis et si j efais une rechercghe de ISTOOL j'ai un mot dans ta conclusion.

A moins qu'il y a une erreur sur les liens ou il manque un tuto.

J'ai été cliquer sur ton nom et je clique sur tous les tutos de DARKSIDIOUS


Ton tuto en pdf n'est plus disponible....

j'attends de tes nouvelles


merci de ton aide c'est tres apprécié
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Salut,

Les tutoriaux au format pdf sont disponibles sur mon site perso :
http://dark-sidious.chez-alice.fr/

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
merci beaucoup
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
Encore moi

Je viens de faire un empaquetage pour faire un tyest et si je l'installe sur mon PC et je démarre l'application (*après l'instalation) j'ai la même erreur


Cette erreur dit:
Erreur d'exécution '424'
Un Objet est Requis

Voyez-vous d'où peut venir le bug

merci encore de votre aide
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Salut,

Fait un fichier de log ligne à ligne au démarrage de ton application pour savoir de quel objet il s'agit.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
humm aucune idée comment faire ca

compliqué ?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Salut,

Non il s'agit d'écrire dans un fichier.

Tu te fais une fonction :
Public Sub ecrireLog(byVal sLog as String)

Dim iFile As Long

  Let iFile = FreeFile
  open App.path & "\log.txt" for append as #iFile

    print #1, sLog

  close #1

End Sub


Et ensuite, il te suffit d'appeler la fonction à chaque ligne de ton form_load (si c'est dans le form_load que tu as ton erreur), par exemple :
private sub form_load()

dim lNombre1 as long
dim lNombre2 as long
dim lNombre3 as long

  let lNombre = 12
  let lNombre2 = 0
  let lNombre3 = lNombre / lNombre2 ' erreur ici !

end sub



Devient :
private sub form_load()

on error goto erreur

dim lNombre1 as long
dim lNombre2 as long
dim lNombre3 as long

  ecrireLog("lNombre = 12")
  let lNombre = 12
  ecrireLog("lNombre2 = 0")
  let lNombre2 = 0
  ecrireLog("lNombre3 = lNombre / lNombre2")
  let lNombre3 = lNombre / lNombre2 ' erreur ici !

exit sub

erreur:

ecrireLog(err.Description)

end sub



Et ainsi tu sauras exactement où est-ce que ca plante. Bien sûr, c'est à faire uniquement pour test, ne pas le laisser en prod !
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
@Claiyah : Je ne connaissais pas du tout cette astuce avec Erl ...
---
VB.NET is good ... VB6 is better
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
3
merci à vous deux...

c'est super comme idée merci