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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.