Probleme de memoire physique (selon VB)

dedebatou Messages postés 13 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 13 septembre 2007 - 18 août 2003 à 16:19
dedebatou Messages postés 13 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 13 septembre 2007 - 18 août 2003 à 17:31
J'ai une application que j'ai dévellopée en VB5 et qui doit tourner 24h/24. Elle est constituée en particulier de deux exécutables qui se partagent un port COM (Rs232) du PC de façon pseudo aléatoire environ toute les 3 secondes pour une durée de communication via le port COM de quelques millisecondes.

Le problème : Au bout de quelques heures j'ai l'écran bleu avec écrit:
"***STOP: 0*00000077(0*C000000E,0*C000000E,0*00000000,0*00174000)
KERNEL-STACK-INPAGE-ERROR
Debut du vidage de la memoire physique"

Je travail sous windows NT.

Si quelqu'un a une explication et/ou une solution ce serait tres sympa, parce que moi je demissionne...

Merci d'avance

2 réponses

sylric Messages postés 91 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 22 août 2003
18 août 2003 à 16:55
Tout d'abord, le terme de partager un COM entre deux applications me paraît bizarre, normalement un COM ne peut être utilisé que par une seule application à la fois, ou alors il faut que chaque appli le referme à tour de rôle, mais ca me paraît très risqué car il faut, dans ce cas, synchroniser les deux appli, et comment, je sais pas ?

Deuxièmement, je ne sais pas comment tu adresse le port RS232, mais avec windows NT et/ou XP il me semble qu'il faille passer uniquement par le controle MSComm : si tu utilise directement l'adresse mémoire du port, ça ne marche pas ou très difficilement. Et le message que tu obtient ressemble à une erreur d'adressage.

Dans le cas ou tu peux, je te conseil déjà d'essayer les executables un par un (mais je pense que tu as essayé).

J'espère que ça te donnera au moins un début d'idée nouvelle.
0
dedebatou Messages postés 13 Date d'inscription jeudi 19 juin 2003 Statut Membre Dernière intervention 13 septembre 2007
18 août 2003 à 17:31
Pour ce qui est du partage du port com, je fais une gestion d'erreur qui met en attente le programme 100ms si le port est déjà ouvert par l'autre programme, puis retente de l'ouvrir.

Pour ce qui est de l'adressage du port, je n'utilise que MSComm.

Et j'ai bien entendu fais tourner les programmes indépendament.

Mon système marche mais il y a quelque chose qui sature la mémoire et qui est transparent dans le programme...
0
Rejoignez-nous