Bonjour,
Je travaille sous Windows XP, Visual Studio 2005, et accessoirement wordpad.
J'ai un bug assez étrange d'écriture dans les fichiers. J'utilise un petite fonction toute bête pour écrire dans un fichier 8, 16 ou 32 bits :
Je lui passe soit un caractère, soit un nombre de 8 bits en entrée (j'ai vérifié même si bien sûr le code accepte jusqu'à 32 bits, il ne reçoit jamais de nombres de plus de 8 bits.) et je passe 8 en second argument. Bien sûr j'aurais pu éviter de mettre un second argument, mais j'utilise aussi cette fonction pour enregistrer mes images 32 bits et 16 bits en BMP. Dans le cas de mon bug, la fonction d'enregistrement d'image a été totalement supprimée du code pour être sûr que ça n'en est pas la source.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 void put (uint32_t value, FILE* outf, uint8_t len) { switch (len) { case 8: fputc(value & 0xff,outf); break; case 16: fputc(value & 0xff,outf); fputc((value >> 8) & 0xff,outf); break; case 32: fputc(value & 0xff,outf); fputc((value >> 8) & 0xff,outf); fputc((value >> 16) & 0xff,outf); fputc((value >> 24) & 0xff,outf); break; } }
Ma fonction principale est découpée en deux parties, l'une qui gère les touches claviers à partir de la bibliothèque SDL, une autre qui gère les touches souris également à partir de SDL. J'ai vérifié en débuggage, il ne semble pas y avoir d'erreur dessus. Seules les touches souris provoquent un enregistrement, les touches clavier ne font jamais appelle à put. Les touches souris font appel à put pour enregistrer les coordonnées où j'ai cliqué et diverses informations sur l'image dans ces coordonnées.
Or si j'appuie sur une touche clavier, quelqu'elle soit, il enregistre toujours mes clics de souris, mais le clic suivant, il ne l'enregistre plus en ASCII, mais en quelque chose de... bizarre (je joins le résultat). Autant dire que mon fichier texte devient illisible.
Si quelqu'un a une idée d'où peut venir le problème, et de comment le résoudre...
EDIT : j'ai l'impression d'ailleurs qu'il y a des messages mytérieux dans les zones où ça part en vrille...
Partager