Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

@gon: Ποιο κατέβασες; Εγώ δοκίμασα μόλις από το git του defacer και τόσο ο Windows7 Photo Viewer όσο και το Gimp τις βλέπουν κανονικά τις παραγόμενες bmp εικόνες.

  • Απαντ. 45
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Δημοσ.

Έκανα clone το του defacer. Θα κατεβάσω ένα gimp για να το δοκιμάσω κι εγώ.

Πάντως το δοκίμασα και σε Windows 8.1 Photo Viewer και έλεγε πως είναι

κατεστραμμένο.

 

 

REFRESH:

Ξαναέκανα clone.

Κάνω compile με:

g++ -Wall -Wextra -std=c++11 *.cpp -o mazegen

Εμφανίζονται αυτά τα warnings:

In file included from MazeGenerator.cpp:2:0:
Maze.h: In constructor ‘Maze::Maze(int, int, bool, bool)’:
Maze.h:30:8: warning: ‘Maze::dumpSteps’ will be initialized after [-Wreorder]
   bool dumpSteps;
        ^
Maze.h:26:9: warning:   ‘Color Maze::pathColor’ [-Wreorder]
   Color pathColor;
         ^
Maze.h:48:1: warning:   when initialized here [-Wreorder]
 Maze::Maze(int height, int width, bool classic, bool steps) :
 ^

το τρέχω και εμφανίζεται το test.bmp το οποίο και ΔΕΝ ανοίγει ούτε με gimp.

 

Το επισυνάπτω κιόλας. Να τονίσω πως είμαι από Linux.

test.bmp

Δημοσ.

Για ανέβασε μία ένα τέτοιο κατεστραμμένο αρχείο.

Είναι συννημένο στο προηγούμενο post μου.

 

Θα το δοκιμάσω τώρα παπί.

@παπι

Δούλεψε!

Δημοσ.

Κάτι με το header παίζει λάθος, στην εικόνα το συγκρίνω με ένα αντίστοιχο που βρήκα στο φάκελο που είχα τον κώδικα από τότε που άνοιξα το thread. Πώς γινεται όμως να δουλευε σε μένα αλλά τώρα σε εσένα να σκαλώνει;(ισως το packing του struct μεταξύ compilers; )

post-172621-0-92498000-1425945455_thumb.png

Δημοσ.

+ του ότι γίνονται όλα aligned στο μεγαλύτερο μέγεθος στο struct ή σε lword (padding)

+ ότι άλλο microsoft compiler και άλλο gcc (padding-alignment)

+ διαφορετικές αρχιτεκτονικές (32bit vs 64bit, βλέπε το πιο τρανταχτό sizeof(unsigned char *))

+ ότι μετά από ΟΛΑ τα παραπάνω χρησιμοποιείται sizeof.

 

EDIT:

Λέω βλακείες; Είναι και αργά. :P

Δημοσ.

#include <stdint.h> FTW! Μεγάλη υπόθεση!

Εδώ βλέπω ότι μιλάνε για bits. Άρα δεν έχουμε εδώ την έννοια των "C bytes"

και την εκπλήρωση/ικανοποίηση αναπαράστασης τουλάχιστον κάποιου range;

Τί σκαλίζω κι εγώ; Αλλά γιατί όχι; :P

Δημοσ.

Δεν ανταποκρίνομαι πλεόν. Μετά από τόσο code conversion και το σεντόνι που έγραψα στο άλλο νήμα, έχω τερματίσει! :P
 

Αυτό που κατάλαβα από τα "συμφραζόμενα" είναι πως δεν σου δούλευε εσένα γιατί ο compiler σου έχει το long ίσο με 64bits, ενώ στα windows είναι 32bits. Για αυτό και είπα για <stdint.h>... αντί για long βάζεις int32_t και είναι παντού ίδιο.

 

Δεν είμαι για παραπάνω απόψε :)

Δημοσ.

Ok! Δεν πιέζω άλλο :P

 

Αλλά αυτό θέλω να μου το απαντήσετε. Γιατί χρησιμοποιήθηκε sizeof για τον υπολογισμό

του header size και όχι κάτι hardcoded, εφόσον έτσι (sizeof) δεν είναι portable;

Δημοσ.

Ok! Δεν πιέζω άλλο :P

 

Αλλά αυτό θέλω να μου το απαντήσετε. Γιατί χρησιμοποιήθηκε sizeof για τον υπολογισμό

του header size και όχι κάτι hardcoded, εφόσον έτσι (sizeof) δεν είναι portable;

 

Δεν έχω δει καν τον κώδικα. Αλλά αν ήταν int32_t αντί για long, τότε hardcoded kai sizeof θα ήταν παντού ίδια, ανεξαρτήτως compiler.

Δημοσ.

Ok! Δεν πιέζω άλλο :P

 

Αλλά αυτό θέλω να μου το απαντήσετε. Γιατί χρησιμοποιήθηκε sizeof για τον υπολογισμό

του header size και όχι κάτι hardcoded, εφόσον έτσι (sizeof) δεν είναι portable;

Ποιος ξέρει, και εγώ τον κώδικα του bitmap έτοιμο τον είχα πάρει τότε που το έφτιαξα αυτό. Ήμουν φρέσκος από C# κτλ τότε και φοβόμουν να δοκιμάσω κάτι τέτοιο μονος μου :P

Δημοσ.

Μπορεί αυτός που το έγραψε να είχε documented πως είναι Windows specific ο κώδικας. Ή μπορεί να μην ήξερε πως είναι compiler dependent. Ή μπορεί όταν τον έγραψε να μην υπήρχαν καν 64bit πλατφόρμες :P

 

Ποιος ξέρει;

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...