Problème pour enregistrer un HBITMAP dans un fichier
Bonjour, j'ai déjà fais quelques recherches et je crée un programme en C pour créer des Bitmaps.
Je commence par faire un test très simple : créer une petite image et la mettre dans un fichier, mais rien que ça, ça ne fonctionne pas !
J'imagine que mon erreur est toute bête, mais je n'ai jamais fais de C, plutôt du C++ et j'ai du mal dès que ça touche trop à la mémoire... (buffer, unsigned char et companie)
Voilà mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| int main(int argc, char **argv)
{
HBITMAP hb;
const int LARGEUR = 4;
char bufferImage[LARGEUR*LARGEUR*3];
for(int i = 0 ; i < LARGEUR * LARGEUR * 3 ; i++) {
bufferImage[i] = 'a';
}
// Création du bitmap
hb = CreateBitmap(LARGEUR, LARGEUR, 1, 24, bufferImage);
// Enregistrement dans un fichier
FILE *fichier;
if(fopen_s(&fichier, "lol.bmp", "w") == 0 ){
fwrite(&hb, sizeof(hb), 1, fichier);
}
return 0; |
J'ai bien un fichier lol.bmp qui est créé, mais sa taille est de 0 octets.
Si par contre je fais
Code:
fwrite(hb, sizeof(hb), 1, fichier);
j'ai une erreur mémoire...
Par ailleurs, est-ce que quelqu'un pourrait m'expliquer rapidement ce qu'est HBITMAP, j'ai lu que c'était un "Handler", j'ai compris que c'était un struct, mais ce n'est toujours pas clair dans mon esprit... Apparement, dans les diverses FAQ que j'ai trouvées, tout ceci est évident pour tout le monde.