Plantage du programme sous exe mais pas sous vb6

Résolu
scortek Messages postés 61 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 1 août 2007 - 25 juil. 2007 à 18:10
scortek Messages postés 61 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 1 août 2007 - 28 juil. 2007 à 16:34
Désolé pour le précédent message (j'utilisé le nouveau browser Safari sous XP et apparement, il ne prend pas les accents circonflexes !).

J'ai une appli compilée sous VB6 IDE qui tourne sans soucis, mais quand je crée l'éxecutable, j'ai une erreur du même type que Bruno 72 ici : http://www.vbfrance.com/infomsg_PLANTAGE-PROGRAMME-SOUS-EXE-MAIS-PAS-SOUS-VB6_629843.aspx (juste que l'emplacement est 0x7c812a7b et semble pointé vers le kernel32).

J'utilise juste 2 API kernel32 et un contrôle VBSmartMenuXP.

J'ai essayé ta méthode pcpt et lu ceci de crosoft http://support.microsoft.com/kb/257630/fr,
mais rien à faire...

Je vais m'arracher les cheveux !!!

13 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
26 juil. 2007 à 13:53
Salut,

Pour fermer brutalement, il doit y avoir TerminateProcessqui doit marcher.

Mais il vaudrait mieux que tu corriges le problème de manière plus effective : tu as certainement un problème du côté de CopyMemory ou de lstrcpy.

Tu dois certainement écraser quelques chose en mémoire que tu devrais pas. Peut on voir la partie où tu utilise ces fonctions ?
3
scortek Messages postés 61 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 1 août 2007
28 juil. 2007 à 16:34
La méthode de fabiin fonctionne bien : http://www.vbfrance.com/codes/TUER-APPLICATION-WINDOWS_2365.aspx.

Merci pour votre aide.
3
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 19:21
Installe le SP4 de VB6 ... (si c'est pas dejà fait)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
25 juil. 2007 à 19:23
voire le SP6 tant qu'à faire

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0

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

Posez votre question
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
25 juil. 2007 à 19:25
la version la plus récente lol (j'ai pas VB6 je sais pas pour les SP ...)
0
Profil bloqué
25 juil. 2007 à 21:21
Le dernier pack pour VB6 est le SP6 et on peut le télécharger en français ici : http://www.microsoft.com/downloads/details.aspx?familyid=9EF9BF70-DFE1-42A1-A4C8-39718C7E381D&displaylang=fr

GRENIER Alain[8D]
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
25 juil. 2007 à 22:41
Ca vient surement du control ou des api. il faut plus de details sur les api et sur l'endroi ou ça plante. Si ça plante au demarrage alors c le controle les sp n'y changerons rien.

@+

E.B.
0
scortek Messages postés 61 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 1 août 2007
26 juil. 2007 à 10:32
J'avais déjà le SP6 et tout à jour, donc c'est peut-être les API.
Apparement c'est une erreur sur le kernel32.dll (ModVer : 5.1.2600.2945 ; Offset : 00012a5b).
Avec Visual C++, après avoir cliqué sur Debug, il me dit Unhandled exception in monappli.exe (KERNEL32.DLL) : 0cC000008F : Float Inexact Result !

Les APIs que j'utilise sont les suivantes :
_ Declare Sub MoveMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
_ Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyA" (lpString1 As Any, Slpstring2 As Any) As Long
_ Declare Sub Sleep Lib "kernel32" (ByVal uDuration As Long)

Voilà, si ça peut vous aider.
Au fait l'erreur s'affiche uniquement lorque je quite mon appli et non au démarrage (mais elle ne nuit pas au soft en lui-même).

Merci encore pour votre aide
0
scortek Messages postés 61 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 1 août 2007
26 juil. 2007 à 10:42
Peut-être changer le kernel32.dll !? (en mode sans échec ?)
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
26 juil. 2007 à 10:45
2 questions :
1) par quelle commande (comment) quittes-tu ton appli ?
2) fais-tu appel à un sous-classement dans ton code ?

et une demande :
Lorsque tu es dans l'IDE en mode run :
Quitte en cliquant sur le stop (petit carré noir) de l'IDE et non sur la "petite croix" de la fenêtre (juste pour voir si, ainsi, celà "plante" également, comme depuis l'exe.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 juil. 2007 à 11:11
Ca ne veux rien dire les erreurs finissent souvent dans le module kernel32 car c'est la ddl noyau de windows. Mais il est fort probable que ton copymemory fouare a un moment ou un autre.

@+

E.B.
0
scortek Messages postés 61 Date d'inscription mardi 4 mai 2004 Statut Membre Dernière intervention 1 août 2007
26 juil. 2007 à 11:48
Ceci peut-il causer soucis ?
Sub Form_Unload (Cancel As Integer)
   End
End Sub

Dans l'IDE, aucun soucis, aussi bien avec le bouton stop, que lorsue je ferme avec la croix (les lignes du dessus se passe bien).
En revenant sur l'exe, par contre en fermant l'appli avec le menu de VBSmart, plus d'erreur...!

Mets à part VBSmart, et le end qui peut poser problème, y a t'il un autre moyen de fermer un appli à la brutale ?
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 juil. 2007 à 11:57
Pourquoi veux tu fermer ton application brutallement ?

E.B.
0
Rejoignez-nous