2009-03-26 20 views
0

J'ai écrit un programme qui ouvre un fichier bmp et le traite comme un fichier de caractères et effectue un codage de longueur d'exécution. Il produit un fichier d'encodage compressé valide, que je relis pour effectuer le décodage.Problème lié à la plate-forme dans l'encodage en longueur de fichiers bmp utilisant C

Quand j'avais fait l'application j'utilisais Fedora et ça fonctionnait parfaitement bien. Maintenant, je le lance sur Ubuntu et il refuse de travailler.

Une idée de ce qui ne va pas? Je crains que cela ait à voir avec l'encodage.

+0

Avez-vous essayé de le recompiler sur Ubuntu ou avez-vous simplement copié le binaire? – karim79

+0

j'ai essayé les deux façons aucun d'entre eux a travaillé .. –

+1

Cela devrait être quelque chose de trivial. Comme char signé/non signé par défaut. Pourquoi traiter un fichier binaire comme un fichier charecter en premier lieu? – sharptooth

Répondre

1

Je suggérerais d'abord et avant tout d'utiliser un débogueur de code source pour trouver le problème.

Les causes possibles comprennent l'utilisation de différents compilateurs sur les différents systèmes, qui pourraient faire différentes choses avec, par exemple, des structures de garnissage (par exemple, BITMAPFILEHEADER). Vous pouvez également avoir différentes architectures de CPU sur les deux systèmes (64 vs 32 bits).

Vous pouvez également utiliser un éditeur hexadécimal (par exemple, XVI32) pour examiner les différences entre les fichiers BMP générés par les deux versions de votre programme.