Hi Leute,
ich habe ein kleines Problem, und zwar binde ich in mein Projekt die windows.h und die allegro.h ein. In beiden wird zufälligerweise eine Struktur mit dem Namen "BITMAP" definiert. Da man sie ja nur einmal definieren kann, tritt folgender Fehler auf:
|
Quellcode
|
1
2
3
|
1>c:\program files\microsoft sdks\windows\v6.0a\include\wingdi.h(567) : error C2371: 'BITMAP': Neudefinition; unterschiedliche Basistypen
1> c:\users\erik\programmierung\libs\allegro-msvc90-4.2.2\include\allegro\gfx.h(262): Siehe Deklaration von 'BITMAP'
1>c:\program files\microsoft sdks\windows\v6.0a\include\wingdi.h(3994) : error C2229: struct 'tagDIBSECTION' enthält ein Array mit der unzulässigen Größe 0
|
Wenn ich auf die erste Meldung doppelklicke, wird mir folgender Code-Ausschnitt der wingdi.h angezeigt (Pfeil zeigt auf die letzte Zeile):
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
|
typedef struct tagBITMAP
{
LONG bmType;
LONG bmWidth;
LONG bmHeight;
LONG bmWidthBytes;
WORD bmPlanes;
WORD bmBitsPixel;
LPVOID bmBits;
} BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP;
|
Bei Doppelklick auf die zweite Meldung öffnet sich die gfx.h mit folgenden Code-Teil (Pfeil zeigt auf die offene geschweifte Klammer nach dem Kopf der Struktur):
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
typedef struct BITMAP /* a bitmap structure */
{
int w, h; /* width and height in pixels */
int clip; /* flag if clipping is turned on */
int cl, cr, ct, cb; /* clip left, right, top and bottom values */
GFX_VTABLE *vtable; /* drawing functions */
void *write_bank; /* C func on some machines, asm on i386 */
void *read_bank; /* C func on some machines, asm on i386 */
void *dat; /* the memory we allocated for the bitmap */
unsigned long id; /* for identifying sub-bitmaps */
void *extra; /* points to a structure with more info */
int x_ofs; /* horizontal offset (for sub-bitmaps) */
int y_ofs; /* vertical offset (for sub-bitmaps) */
int seg; /* bitmap segment */
ZERO_SIZE_ARRAY(unsigned char *, line);
} BITMAP;
|
Wenn ich auf die dritte Meldung doppelklicke, öffnet sich wieder die wingdi.h mit folgendem Code-Teil (Pfeil auf Zeile von "BITMAPINFOHEADER"):
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
typedef struct tagDIBSECTION {
BITMAP dsBm;
BITMAPINFOHEADER dsBmih;
DWORD dsBitfields[3];
HANDLE dshSection;
DWORD dsOffset;
} DIBSECTION, FAR *LPDIBSECTION, *PDIBSECTION;
|
Was kann man denn da machen?
Vielen Dank im Voraus,
mfg Gon