Что такое equavalent кода ниже в c/C++?BITMAPFILEHEADER эквивалент в c/C++?
ref BITMAPFILEHEADER bmfh = ref buffer[offset]; //Where buffer is a byte[] array
Что такое equavalent кода ниже в c/C++?BITMAPFILEHEADER эквивалент в c/C++?
ref BITMAPFILEHEADER bmfh = ref buffer[offset]; //Where buffer is a byte[] array
Если вы #include <windows.h>
должны быть BITMAPFILEHEADER
struct уже.
PBITMAPFILEHEADER bmfh_ptr = (PBITMAPFILEHEADER)(buffer + offset);
// where buffer is a char[] array.
ОС агностиком C реализация ++ из 24-битного BMP считывания/записи могут быть найдены: http://code.google.com/p/bitmap/source/browse/trunk/bitmap_image.hpp
Ниже определения Struct из заголовка и информационных блоков:
struct bitmap_file_header
{
unsigned short type;
unsigned int size;
unsigned short reserved1;
unsigned short reserved2;
unsigned int off_bits;
unsigned int struct_size()
{
return sizeof(type) +
sizeof(size) +
sizeof(reserved1) +
sizeof(reserved2) +
sizeof(off_bits);
}
};
struct bitmap_information_header
{
unsigned int size;
unsigned int width;
unsigned int height;
unsigned short planes;
unsigned short bit_count;
unsigned int compression;
unsigned int size_image;
unsigned int x_pels_per_meter;
unsigned int y_pels_per_meter;
unsigned int clr_used;
unsigned int clr_important;
unsigned int struct_size()
{
return sizeof(size) +
sizeof(width) +
sizeof(height) +
sizeof(planes) +
sizeof(bit_count) +
sizeof(compression) +
sizeof(size_image) +
sizeof(x_pels_per_meter) +
sizeof(y_pels_per_meter) +
sizeof(clr_used) +
sizeof(clr_important);
}
};
Дословный перевод:
BITMAPFILEHEADER *bmfh = &(buffer[offset]);
возможно более естественный в c + +:
PBITMAPFILEHEADER bmfh = (PBITMAPFILEHEADER)(buffer+offset);
но будьте осторожны, что для того, чтобы оба из них правильно работали, буфер лучше всего определять как тип символа.
Обратите внимание, что PBITMAPFILEHEADER определяется как BITMAPFILEHEADER *, как обычно, с именами окон.
Это правда, но как насчет того, если вы не строите среду или для окон? – Fredrick
@Fredrick: Тогда вы не используете Windows API, частью которого является этот тип. – GManNickG
@Fredrick: Затем скопируйте объявление этой структуры в ссылку, которую я включил. – kennytm