Struct - binär schreiben mit ofstream/write
-
#include <iostream> #include <fstream> using namespace std; typedef unsigned short int word; typedef unsigned long int dword; int main() { char file_name[]="a.bmp"; struct fileheader { word bfType; word bfSize; dword bfReserved; dword bfOffBits; } fheader; fheader.bfType = 19778; fheader.bfSize = 0; fheader.bfReserved = 0; fheader.bfOffBits = (sizeof(iheader)+sizeof(fheader))*8+1; ofstream bmp_file; bmp_file.open(file_name, ios_base::out | ios_base::binary); if(bmp_file.good()) cout << "Datei erstellt!" << endl; bmp_file.write(reinterpret_cast<char *>(&fheader), sizeof(fheader)); return 0; }Ich versuche gerade mit C++ eine Bitmap-Datei zu erstellen:
Mein Problem dabei ist dass er irgendwie an die 2-Byte Variablen nochmal 2-Byte dazuhängt die nur unsinn enthalten.
Also z.B.: FFFF 0200 | FFFF 0340 | FFFF FFFF | FFFF FFFF
(FFFF ist das gewollte)erkennt der nicht die Größe der Varibalen??
Achja und wegen WORD und DWORD: passt dass mit short int & long int???
-
Schreib mal die Werte einzeln nacheinander rein, ich tippe mal auf alignment.