Au boulot nous travaillons sur windows XP avec un =E9mulateur VT320 vers
un programme sur un serveur linux.
Je ne suis pas autoris=E9 =E0 "attaquer" les tables du programme, et pour
pouvoir palier =E0 certains manques de ce programme, je rappatrie des
donn=E9es vers une base de donn=E9es Access.
Pour cela j'ai r=E9alis=E9 une macro en C dans un programme console, qui
fait des copiers/coller vers un fichier txt. J'envois de touches
virtuelles puis je r=E9cup=E8re le clipboard et j'extrais les =E9l=E9ments
qui m'int=E9ressent que je place dans des variables.
Tout fonctionne correctement, sauf quand je lance la macro sur un grand
nombre de "fiches" =E0 copier. J'ai r=E9alis=E9 des tests et ai ajout=E9
proc=E9dures de v=E9rification mais rien =E0 faire mon programme plante
vers le 200=E8me =E9cran copi=E9.
J'ai recopi=E9 les =E9l=E9ments de Dr Watson pour les plantages mais
=E9videmment je ne comprends pas les messages des fautes r=E9pertori=E9es.
J'esp=E8rais avoir toujour le m=EAme message d'erreur mais ce n'est pas
le cas.
Y a t'il une masse maximum d'=E9l=E9ments qu'un programme console peut
traiter ?
Y a t'il moyen de d=E9cripter les messages d'erreurs de Dr WATSON. Sinon
existe t'il un moyen de surveiller mon application et de r=E9cup=E9rer
des informations me permettant de comprendre ce qui plante ?
Pour ce qui est de fermer : if ((fopen("outBCd.txt", "r"))== NULL), j'avais effectivement mal compris l'exemple que j'ai pioché dans mon bouquin d'initiation...
C'est ce fopen() qui ne sert à rien, puisque tu écris dans le fichier par la suite après l'avoir ouvert en "a" (donc pas besoin de savoir s'il existe au départ)
ologram wrote:
Pour ce qui est de fermer : if ((fopen("outBCd.txt", "r"))== NULL),
j'avais effectivement mal compris l'exemple que j'ai pioché dans mon
bouquin d'initiation...
C'est ce fopen() qui ne sert à rien, puisque tu écris dans le fichier
par la suite après l'avoir ouvert en "a" (donc pas besoin de savoir s'il
existe au départ)
Pour ce qui est de fermer : if ((fopen("outBCd.txt", "r"))== NULL), j'avais effectivement mal compris l'exemple que j'ai pioché dans mon bouquin d'initiation...
C'est ce fopen() qui ne sert à rien, puisque tu écris dans le fichier par la suite après l'avoir ouvert en "a" (donc pas besoin de savoir s'il existe au départ)
ologram
J'ai modifié mon code comme indiqué en n'ouvrant que 2 handles et plus de problèmes. Merci à tous.
Concernant les Sleeps (qui sentent le pâté) je les utilise parce qu'il m'est impossible, avec ce que je connais de la programmation windows, de savoir quand l'émulateur a bien récupéré les envois de touches et procédé à l'affichage du nouvel écran.
En fait je devrais créer une routine qui attende le message disant : envoi de touche bien reçu, écran rafraîchi éffectué, mais je ne sais pas comment faire, ni de qui je dois attendre cette info (la fenêtre mère ou une des filles).
Si vous avez des pistes...
ologram
J'ai modifié mon code comme indiqué en n'ouvrant que 2 handles et
plus de problèmes. Merci à tous.
Concernant les Sleeps (qui sentent le pâté) je les utilise parce
qu'il m'est impossible, avec ce que je connais de la programmation
windows, de savoir quand l'émulateur a bien récupéré les envois de
touches et procédé à l'affichage du nouvel écran.
En fait je devrais créer une routine qui attende le message disant :
envoi de touche bien reçu, écran rafraîchi éffectué, mais je ne
sais pas comment faire, ni de qui je dois attendre cette info (la
fenêtre mère ou une des filles).
J'ai modifié mon code comme indiqué en n'ouvrant que 2 handles et plus de problèmes. Merci à tous.
Concernant les Sleeps (qui sentent le pâté) je les utilise parce qu'il m'est impossible, avec ce que je connais de la programmation windows, de savoir quand l'émulateur a bien récupéré les envois de touches et procédé à l'affichage du nouvel écran.
En fait je devrais créer une routine qui attende le message disant : envoi de touche bien reçu, écran rafraîchi éffectué, mais je ne sais pas comment faire, ni de qui je dois attendre cette info (la fenêtre mère ou une des filles).