1

Bonjour à tous

Tout récemment, j'ai réinstallé Aranym avec XaAES sur mon PC avec comme projet d'apprendre la programmation GEM.
J'ai donc installé AHCC et téléchargé les ST Magazine pour suivre, depuis le n°1, les articles sur la programmation GEM.
J'ai donc retapé l'example de n°2 en page 17, mais j'ai quelques soucis de compilation sur la section de code suivante:void do_redraw(int xc, int yc, int wc, int hc) { GRECT t1, t2; hide_mouse(); wind_update(TRUE); t2.g_x = xc; t2.g_y = yc; t2.g_w = wc; t2.g_h = hc; wind_get(wi_handle,WF_FIRSTXYWH,&t1.g_x,&t1.g_y,&t1.g_w,&t1.g_h); while (t1.g_w && t1.g_h) { if(rc_intersect(&t2,&t1)) { set_clip(t1.g_x,t1.g_y,t1.g_w,t1.g_h); dofleur(); } wind_get(wi_handle,WF_NEXTXYWH,&t1.g_x,&t1.g_y,&t1.g_w,&t1.g_h); } wind_update(FALSE); show_mouse(); }

La première erreur est localisée à la ligne " t2.g_x = xc;": le compilateur se plaint que g_c n'est pas un membre (de structure).
La seconde vient du fait que le compilateur ne trouve pas de prototype et de déclaration pour la fonction rc_intersect().

En début du fichier source, voici ce que j'ai mis comme include:#include <stdarg.h> #include <stdbool.h> #include <stddef.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <tos_gem.h> #include "flower.h"

Je joins également le fichier source complet: tromb flower.c
Voilà, un peu d'aide sera fort appréciée.

D'avance merci.

Françoistromb Fichier joint : flower.c

2

Est ce rc_intersect est défini dans tos_gem.h ?
Sinon, tu dois chercher dans quel fichier .h il est définit. Peut-être vdi.h ?
avatar
Futur ex éditeur de jeux Atari Lynx et Nintendo Game Boy
https://yastuna-games.com

3

tos_gem.h inclus simplement tos.h, aes.h et vdi.h et rc_intersect n'est défini dans aucun de ces fichiers sad

C'est vraiment bizarre

4

C'est défini dans GEMF.H
N’oublie pas d'inclure la lib dans le projet.

5

Merci Nalfus.

Entretemps, j'ai identifié les causes de mes problèmes: AHCC a deux dossiers d'include: "include" et "sinclude". Par défaut, c'est le dossier "sinclude" qui est utilisé et dans lequel gemf.h n'existe pas.... D'autre part, le fichier sinclude/aes.h definit GRECT avec comme membres x/y/w/h au lieu des traditionnels g_x/g_y/g_w/g_h, ce qui n'est pas le cas dans le fichier include/aes.h