Vb6 - problème compilation [Résolu]

Signaler
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
-
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
-
Bonjour,

Vous est il déjà arrivé d'avoir, sur un même ordinateur, un bug qui apparaît sur un programme seulement quand il est compilé?
Je m'explique: j'ai un programme qui marche impec sous vb, etc... cependant, si je le compile et que je joue avec l'exe, un bug apparait (assez fréquemment en plus), ça ne fait pas du tout ce qu'il se passe sous vb... Y a t'il d'autres cas dans le genre? est ce que vous avez déjà remarqué certains cas comme ça? Merci.

 Pourapprendretoujoursplus!

16 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
je n'arrive pas à reproduire ton bug, envoie moi ton exe stp, et la capture de tes options de compilation
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
l'index (plus généralements les objets indéxés)  correspond à la COLLECTION des objets
cette collection (classe) est sans doute gérée différemment avec et sans le SP6

ceci peut expliquer celà....

détail important : tu es sous vista et il fallait le SP6US
http://visual-basic-6-sp6.fr.malavida.com/d3364-telechargement-gratuit-windows

bon courage pour la suite
bonne soirée
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Quel genre de bug ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bonsoir,


Oui presque un peu dans le même genre... sous VBA (comprendre VBE, c'est la même chose), un programme tourne parfaitement, mais lorsqu'on demande la pré-compilation, un bug se produit... Après, recherche, (le code n'étant pas de moi, mais je l'avais récupéré sur VBF), la raison en était une mauvaise structure (du moins, non acceptable en pré-compilé) qui générait une erreur en interne, mais était corrigé par VBA (VBE) en interne lors de l'exécution. Donc, tout à fait transparent au programmeur... Je pense que sous VB6, l'histoire aurait été parfaitement identique, vu que VBA c'est du VBE déguisé, et la pré-compilation c'est un compilation non utilisable...

Presque sûrement, ton cas est basé sur ce même principe... J'avais corrigé le code, en ré-écrivant correctement une imbrication de boucle, de mémoire... erreur mémorable...

Amicalement,
Us.
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Hmmm ok us_30, je vais donc vérifier le code et les boucles, merci pour les commetaires, je vous tiens au courant :)

Ps: c'est un jeu (un tétris), avec pas mal d'options, enfin j'en passe... on peut jouer à 2 en même temps, et quand on perd, il y a une animation assez basique.
Par contre, pour qu'il y ait l'animation en même temps que l'autre joueur joue, j'ai du utiliser des timers.
L'animation, ça fait comme un serpent qui se déplace en zig zag sur tout l'écran du joueur ayant perdu. ça se passe impec sous vb6, mais par contre en compilé le truc plante méchamment: ça fait un eu n'importe quoi, à la fin on a:
..........
.
..........
.
.........   
au lieu d'avoir tout l'écran pris par le serpent, et quand ça arrive en bas de l'écran, ça sort forcément des dimensions et ça plante (ce sont des cases: des picturebox, et forcément je n'en ai pas mis en dehors de l'écran).

Enfin bon, le programme date de 3 mois maintenant, mais je m'en suis aperçu dans la semaine en y jouant avec un copain sur la version compilée. e vais revoir le code, comme préconisé par u_30, et voir ce qui peut faire planter (ps: j'ai déjà essayé de regarde, mais je n'ai rien trouvé, je vais continuer à chercher.

 Pourapprendretoujoursplus!
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
salut,

logiquement si tu as pu compiler, cette "astuce" ne donnera rien mais qui sait :

teste ton code en IDE en le lançant avec Ctrl+F5

sinon en attendant (puisqu'apparemment tu as isolé le code à problème), te reste à faire une gestion d'erreurs en fichier externe pour identifier ligne à ligne.
(tu peux d'ailleurs regarder dans mes sources, tu gagneras du temps pour tester tout çà....)

nb : si tu numérotes tes lignes, exemple :

    dim i as integer
    i=3
    i=6

devient

    dim i as integer
10  i=3

11  i=6

dans la procédure tu pourras récupérer la ligne d'erreur avec if err.number then msgbox "ligne " & erl()

bon courage ;)
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut PCPT, je teste ça aussi de suite! :)
Je n'ai pas eu le temps encore de faire les tests pour ce qu'à préconisé us_30, je m'y mets aussi.

Sinon pour la gestion des erreurs, je ne sais pas si ça va marcher parce que le programme (l'animation) fait n'importe quoi déjà avant le message d'erreur (et ce message d'erreur en fait est pour dire que le truc est sorti des limites des picturebox qu j'ai mises (il va à une picturebox disons par exemple 100 alors que je n'en ai mis que 90)) Ce qu'il faudrait c'est arriver à voir ce qu'il se passe pendant l'animation, alors je vais placer des messagebox un pe partout durant l'animation pour avoir des infos si jamais je ne trouve rien.
J'essaie le ctrl+F5 tout de suite cela dit :)

 Pourapprendretoujoursplus!
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Le ctrl+F5 ne donne rien, j'ai testé une dizaine de fois (on ne sait jamais), tout se passe parfaitement bien.
Je regarde le reste et vous tiens au courant :)

 Pourapprendretoujoursplus!
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
ne mets pas de msgbox, utilise ma classe ^^

tu t'en sortira jamais si tu dois cliquer à chaque instruction
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut,
Je comprends de moins en moins ce qui se passe...
J'ai vérifié, tous les calculs sont exacts, y'a pas de problème de boucle ni rien...
J'ai essayé, sachant que c'est vraiment une mini animation (changer l'image de certaines picturebox indexées, après calcul du numéro de la picturebox), d'utiliser des msgbox pour voir si y'a des problèmes avec ces calculs, et donc les numéros des picturebox.
Je teste sur vb, parfait, bon il faut cliquer à chaque fois, mais c'est pas très grave, je compile, je lance l'exe, je teste (beaucoup de fois...) => Plus aucun problème !
Je retire les msgbox, ça marche impec sous vb, mais l'exe plante maintenant...
Alors je me suis dit que peut être les timers que j'utilise ont des temps trop courts, et que ça fait bger le système, mais même en rallongeant grandement le temps des timers (j'avais déjà mis des doevents en plus), ça plante... Je sais plus quoi faire T_T

 Pourapprendretoujoursplus!
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
héberge ton projet, j'essaye de jeter un oeil aujourd'hui....

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut,

Merci pour ta proposition, il n'y a que peu de commentaires sur la source, j'en mets pour que tout soit bien compréhensible, du moins la partie du code qui pose problème.
Est-il possible de t'envoyer le tout par mail? (je n'ai pas d'hébergeur, et je n'ai pas envie de poster la source sur codes sources sachant qu'il y a un gros bug :/)
Merci

 Pourapprendretoujoursplus!
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
http://dl.free.fr/

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut à tous :°)

PCPT a réussi à trouver la cause du problème, après avoir consacré pasmal de temps sur le sujet (encore merci infiniment PCPT :°)  )
Apparamment, le problème venait du fait que je n'avais pas la SP6 d'installée. ce qui est bizarre, c'est comment le bug se manifestait: une erreur de calcul (élémentaire: simples additions, soustracions, multiplications, divisions) sur l'index des cases à changer.
Il n'arrivait pas à recréer le bug en compilant mon projet, mais il a bien vu quand je lui ai envoyé l'exe que j'avais moi même fait que ça plantait bel et bien... Alors voila en fait c'était le SP6 qui manquait (encore une fois, je ne comprends pas pourquoi ça faisait une erreur de calcul sans le SP6 mais bon...), et dès que je l'ai installé, plus aucun problème.

Voili voil, merci à tous pour votre aide, et un merci tout particulier à PCPT qui a résolu le problème, et qui surtout m'a donné beaucoup de son temps pour chercher d'où provenait l'erreur :)

 Pourapprendretoujoursplus!
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Merci pour l'explication :)

 Pourapprendretoujoursplus!
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Mais c'est quand même bizarre: les calculs de case durant le jeu sont toujours bons, y'a pas de bug non plus durant l'animation quand on perd si c'est en spirale il n'y a que quand c'est l'animation de fin (quand on perd) si c'est en ligne par ligne qui plantait.
De plus, en rajoutant des msgbox à chaque étape, le bug disparaissait.
Bizarre donc pour moi :)

En tout cas, merci beaucoup et bonne soirée

 Pourapprendretoujoursplus!