Vb6 - problème compilation

Résolu
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 - 5 avril 2008 à 18:18
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 - 8 avril 2008 à 01:55
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

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
7 avril 2008 à 13:38
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
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
8 avril 2008 à 01:45
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 avril 2008 à 18:35
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
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
5 avril 2008 à 22:34
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.
0

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

Posez votre question
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
6 avril 2008 à 00:41
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!
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
6 avril 2008 à 16:14
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
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
6 avril 2008 à 16:58
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!
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
6 avril 2008 à 17:01
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!
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
6 avril 2008 à 17:53
ne mets pas de msgbox, utilise ma classe ^^

tu t'en sortira jamais si tu dois cliquer à chaque instruction
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
7 avril 2008 à 09:37
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!
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
7 avril 2008 à 11:45
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
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
7 avril 2008 à 12:00
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!
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
7 avril 2008 à 12:09
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
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
8 avril 2008 à 01:36
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!
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
8 avril 2008 à 01:50
Merci pour l'explication :)

 Pourapprendretoujoursplus!
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
8 avril 2008 à 01:55
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!
0
Rejoignez-nous