From: "Joel Saunders" Newsgroups: comp.os.msdos.djgpp Subject: Problem using a struct Date: Wed, 8 Jan 2003 15:58:30 +0000 (UTC) Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Lines: 49 Message-ID: NNTP-Posting-Host: cache-ntc-ad01.proxy.aol.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: news.mailgate.org 1042039485 26261 198.81.26.102 (Wed Jan 8 16:58:29 2003) X-Complaints-To: abuse AT mailgate DOT org NNTP-Posting-Date: Wed, 8 Jan 2003 15:58:30 +0000 (UTC) Injector-Info: news.mailgate.org; posting-host=cache-ntc-ad01.proxy.aol.com; posting-account=62691; posting-date=1042039485 User-Agent: Mailgate Web Server X-URL: http://mygate.mailgate.org/mynews/comp/comp.os.msdos.djgpp/bcd4cba120fadbd18cb606881c88ae87.62691%40mygate.mailgate.org To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com I made a post about this yesterday, but it never showed up, so I'll try again, and hope it posts this time. For a basic bmp loader I made, the struct to hold the bmp header doesn't work. I used __attribute__((__packed__)) after each item, but it's no good. I gave the file for the program, a C extention, instead of a cpp extention, so I know that probably makes some difference. Here's the header... struct BMP_Header { unsigned int BM __attribute__((__packed__)); unsigned long File_Size __attribute__((__packed__)); unsigned int R_1 __attribute__((__packed__)); // Reserved 1 unsigned int R_2 __attribute__((__packed__)); // Reserved 2 unsigned long BMP_Offset __attribute__((__packed__)); unsigned long Header_Info __attribute__((__packed__)); unsigned long BMP_Width __attribute__((__packed__)); unsigned long BMP_Height __attribute__((__packed__)); unsigned int BMP_Planes __attribute__((__packed__)); unsigned int BPP __attribute__((__packed__)); unsigned long Compression __attribute__((__packed__)); unsigned long BMP_Size __attribute__((__packed__)); unsigned long Width_PPM __attribute__((__packed__)); unsigned long Height_PPM __attribute__((__packed__)); unsigned long Num_of_Colors __attribute__((__packed__)); unsigned long Important_Colors __attribute__((__packed__)); }image; Here's what I had to use instead of the header: unsigned char image[54]; #define image_BM ((int *)&image[0])[0] #define image_File_Size ((long *)&image[2])[0] #define image_R_1 ((int *)&image[6])[0] #define image_R_2 ((int *)&image[8])[0] #define image_BMP_Offset ((long *)&image[10])[0] #define image_Header_Info ((long *)&image[14])[0] #define image_BMP_Width ((long *)&image[18])[0] #define image_BMP_Height ((long *)&image[22])[0] #define image_BMP_Planes ((int *)&image[26])[0] #define image_BPP ((int *)&image[28])[0] #define image_Compression ((long *)&image[30])[0] #define image_BMP_Size ((long *)&image[34])[0] #define image_Width_PPM ((long *)&image[38])[0] #define image_Height_PPM ((long *)&image[42])[0] #define image_Num_of_Colors ((long *)&image[46])[0] #define image_Important_Colors ((long *)&image[50])[0] What can I do to make the struct work? All help is appreciated. Thanks. -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG