Processus qui "freeze" en plein traitements.

cs_KSK Messages postés 2 Date d'inscription jeudi 13 juin 2002 Statut Membre Dernière intervention 14 juin 2002 - 14 juin 2002 à 07:18
cs_emaman Messages postés 1 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 12 octobre 2004 - 12 oct. 2004 à 00:04
Bonjour,
J'ai un gros problème avec un programme VB. C'est un programme qui fait divers traitements, et parmi ces traitements il y'a une fonction qui fait référence à un composant OCX du genre :

Dim o_inet
o_inet = New blabla.blabla
' traitements
o_inet = Nothing

J'ai pas le code dispo sous la main et c'est assez urgent, mais le composant c'est MSINET.OCX, dans mon cas c'est pour faire du FTP. Le problème est le suivant :

- lorsque je passe pas par cette fonction, aucun problème, le programme s'exécute et se termine correctement.

- lorsque je passe par cette fonction, problème extrêmement bizarre : les traitements de la fonction sont bien effectués, le programme "suit son cours", puis s'arrête avant la fin. quand je dis s'arrête, c'est pas tout a fait le cas, puisqu'il ne rend pas la main (c'est un programme en mode console, pas de bdd apparente), c'est juste qu'il ne fait pas les traitements jusqu'a la fin : par exemple il arrive qu'il aille jusqu'a une fonction qui écrit des informations dans une log, et qu'il s'arrête en plein milieu. Je suis alors obligé de killer le processus. En mode debug, la, auncun problème, j'arrive jusqu'à la fin.

Voila, c'est très bizarre je sais que les données du problèmes ne sont pas très précises et détaillées, mais c'est urgent, je n'ai pas le code sous la main.

Je précise que c'est mon premier programme en VB, il est donc tout à fait possible que ce soit une erreur "énorme". Je précise aussi que la même chose arrive avec une fonction qui fait appel aux fonctions DDE d'un contrôle TextBox.

Si qq'un à la moindre idée, ca m'enlèverait une grosse épine du pied.

3 réponses

cs_processus Messages postés 360 Date d'inscription vendredi 24 août 2001 Statut Membre Dernière intervention 9 juillet 2008 3
14 juin 2002 à 10:40
Salut,

Commence par "typer" ta vairable o_inet en objet, comme ceci :
Dim o_inet As Object

Puis ensuite, attribut ce dernier à une nouvelle instance du contrôle Inet de cette manière :
Set o_inet = New Blabla.Blabla

' Traitement

Et enfin, suppression de l'objet en mémoire :
Set o_inet = Nothing

Ca devrais mieux marché, et éviter ainsi la clusterisation en mémoire...

============
Site Web de JDPROG
Présentation de MP3 Index

http://jdprog.fr.st
0
cs_KSK Messages postés 2 Date d'inscription jeudi 13 juin 2002 Statut Membre Dernière intervention 14 juin 2002
14 juin 2002 à 12:03
Tout d'abord, merci d'avoir répondu, je sais que le problème est très "flou", et donc ca doit être chiant de répondre.

Ensuite, en ce qui conerne, les lignes :
o_inet = New blabla.bla
o_inet = Nothing

J'avais oublié de mettre le Set dans mon message (ca vous montre un peu mon niveau en VB... :sad) ) mais pas dans le code. Par contre j'avais pas typé la variable...et en fait je le fais rarement dans mon programme (a part pour les types "triviaux" genre String, Integer). Je vais déjà modifier ca des que je peux.

Mais ce qui est bizarre c'est que quand le programme ne passe pas par cette fonction, aucun problème, quand il passe pas la fonction ca déconne.
0
cs_emaman Messages postés 1 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 12 octobre 2004
12 oct. 2004 à 00:04
As tu trouvé la solution car j'ai le meme problème.
0
Rejoignez-nous