I'm using 32 and 64 bit linux machines to compile ( Linux/GLX Code ). I faced with problem in loadBMP function on linux64. To be short the problem is in the following line ( starting from lesson06 ):
long int bfOffBits;
and later in the function if (!fread(&bfOffBits, sizeof(long int), 1, file))
it's better to replace it with
int bfOffBits;
...
if (!fread(&bfOffBits, sizeof(bfOffBits), 1, file))
because:
linux32: sizeof( long int ) == 4
linux64: sizeof( long int ) == 8
and BMP file format assumes the field size ( File offset to Pixel Array ) to be 4 bytes.
Please correct me if I'm wrong.
Best regards.