Прикрепляю пример. Правда, вот такая штука:
| Код | BITMAPFILEHEADER bfh; // ... fs = new TFileStream(OpenDialog1->FileName, fmOpenRead | fmShareDenyWrite);
if(fs->Read(&bfh, sizeof(BITMAPFILEHEADER))) { Memo1->Lines->Add("BitmapSize: " + IntToStr(bfh.bfSize)); Memo1->Lines->Add("Offset: " + IntToStr(bfh.bfOffBits)); }
|
не покатила... (получается полная ерунда) Сделал чтение поэлементно.
И кстати, вот это:
| Код | sizeof(BITMAPFILEHEADER)
|
возвращает 16 По идее же 14 байт размер структуры...
Добавлено через 4 минуты и 58 секунд 586, вот это:
| Код | BITMAPFILEHEADER bfh; FILE *f = fopen("C:\\111.bmp", "rb"); if(!f) { ShowMessage("Cannot open file."); return; } if(fread(&bfh, 1, sizeof(bfh), f) == sizeof(bfh)) { Memo1->Lines->Add(bfh.bfSize); Memo1->Lines->Add(bfh.bfOffBits); } else { ShowMessage("Error. Invalid file."); } fclose(f);
|
тоже ерунду заносит в Мемо. |