salut

j'essay de coder une petite fonction de loading de bmp. or, voila, j'ai un probleme (qui n'a pas grand chose a voir avec le but de mon code dailleur ....)

efin, voila le code :
Code : C
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <mem.h>

/* Définition des types de variables : */
typedef unsigned char  byte;    /* */
typedef unsigned short word;    /*  0xF  */
typedef unsigned long  dword;   /* 0xFF */

/* Définition de la structure d'un header de fichier BMP */
typedef struct _BMP_HEAD {
        word Type;              /*File type. Set to "BM".*/
        dword Size;             /*Size in BYTES of the file.*/
        dword Reserved;                 /*Reserved. Set to zero.*/
        dword Offset;       /*Offset to the data.*/
        dword headerSize;             /*Size of rest of header. Set to 40.*/
        dword Width;          /*Width of bitmap in pixels.*/
        dword Height;       /*Height of bitmap in pixels.*/
        word Planes;          /*Number of Planes. Set to 1.*/
        word BitsPerPixel;           /*Number of bits per pixel.*/
        dword Compression;           /*Compression. Usually set to 0.*/
        dword SizeImage;               /*Size in bytes of the bitmap.*/
        dword XPixelsPerMeter;  /*Horizontal pixels per meter.*/
        dword YPixelsPerMeter;  /*Vertical pixels per meter.*/
        dword ColorsUsed;             /*Number of colors used.*/
        dword ColorsImportant;  /*Number of "important" colors.*/
} BMP_HEAD ;

/* Pointeur sur la mémoire vidéo VGA 13H */
byte *VGA=(byte *) MK_FP(0xA000,0);


void load_bmp(char *file,BITMAP *b)
{
  FILE *fp;

  /* open the file */
  if ((fp = fopen(file,"rb")) == NULL)
  {
    printf("Erreur l'ors de l'ouverture du fichier %s.\n",file);
    exit(1);
  }
  fread(&b,sizeof(BMP_HEAD), 0, fp);
 /*cette ligne est un genre de test pour verifier la bonne marche du chargement du header avant de continuer le codage */
 printf("variables : \n  type :%s\n  Width :%d\n   Height :%d\n", b.Type, b.Width, b.Height);
 
 }
 
int main()
{
BMP_HEAD bmp;
  load_bmp("rocket.bmp",&bmp);
  getch();

}

or voila, la ligne rouge me renvoie cette erreur :
"Illegal structure operation in function load_bmp"

pourriez vous m'en indiquer la raison ?

---> je compile mon code sous TurboC

merci, ++ Tix.