Why as an unsigned char buffer, and not as a structure buffer? Oh well, it's your decision .
Code:
typedef struct
{
unsigned short BfType;
unsigned long BfSize;
unsigned short BfReserved1;
unsigned short BfReserved2;
unsigned long BfOffBits;
}BmpFileHeader;
typedef struct
{
unsigned long BiSize;
unsigned long BiWidth;
unsigned long BiHieght;
unsigned short BiPlanes;
unsigned short BiBitCount;
unsigned long BiCompression;
unsigned long BiSizeImage;
unsigned long BiXPixPerMeter;
unsigned long BiYPixPerMeter;
unsigned long BiColorUsed;
unsigned long BiColorImportant;
}BmpImageHeader;
int main()
{
unsigned char* FileBuffer;
unsigned char* ImageBuffer;
FileBuffer = new unsigned char[sizeof(BmpFileHeader)];
if(FileBuffer == NULL)
{
return 0;
}
ImageBuffer = new unsigned char[sizeof(BmpImageHeader)];
if(ImageBuffer == NULL)
{
delete[] FileBuffer;
return 0;
}
...
delete[] FileBuffer;
delete[] ImageBuffer;
retun 0;
}