Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 29 Nov 2025, 21:33

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Un p'tit coup de main ?

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 9 message(s) ] 
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
zecreator
 Sujet du message : Un p'tit coup de main ?
Message Publié : 02 Oct 2015, 10:55 
Hors-ligne

Inscription : 26 Déc 2012, 22:33
Message(s) : 5
Bonjour,

Pour apprendre le langage C, mais je me suis lancé dans un petit projet CPC. J'ai revu l'utilisation de mes pointers, mais depuis SDCC ne compile plus mon code C.

J'ai une erreur de type : "Indirections to differents types assignments from type 'const-char' to type 'unsigned char'.

Bon, je comprend que je dois utiliser un mauvais type de variables à un moment, mais je n'arrive pas à voir où. Je pense à un problème de pointers. Je suis débutant en pointers.

Je vous donne mes sources ici.
http://www.freetalent.fr/downloads/mabool.zip

Merci par avance.


Haut
 Profil  
 
Lone
 Sujet du message : Re: Un p'tit coup de main ?
Message Publié : 02 Oct 2015, 13:01 
Hors-ligne
Rulezzzz
Rulezzzz

Inscription : 25 Fév 2013, 13:56
Message(s) : 648
Localisation : Ardèche
Salut,

Je galère à récupérer ton zip, mais ton problème ne semble pas lié à des pointers (pas directement en tout cas), mais plutôt a un cast.
Il est en effet normal de ne pas pouvoir utiliser tel quel un "const char" en "unisgned char" : Le const indique que ce char est en lecture seule, attribut qu'il perd lorsque l'on l'utilise comme un "unsigned char". Il faut donc, au minimum, le caster en "unsigned char" (en étant bien sûr de ce que l'on veut faire ! A priori, cette erreur n'est pas là par hasard !)

Sinon, ton erreur apparais à quelle ligne ?


Haut
 Profil  
 
zecreator
 Sujet du message : Re: Un p'tit coup de main ?
Message Publié : 02 Oct 2015, 13:35 
Hors-ligne

Inscription : 26 Déc 2012, 22:33
Message(s) : 5
Lone a écrit :
Salut,

Je galère à récupérer ton zip, mais ton problème ne semble pas lié à des pointers (pas directement en tout cas), mais plutôt a un cast.
Il est en effet normal de ne pas pouvoir utiliser tel quel un "const char" en "unisgned char" : Le const indique que ce char est en lecture seule, attribut qu'il perd lorsque l'on l'utilise comme un "unsigned char". Il faut donc, au minimum, le caster en "unsigned char" (en étant bien sûr de ce que l'on veut faire ! A priori, cette erreur n'est pas là par hasard !)

Sinon, ton erreur apparais à quelle ligne ?


La console m'indique une erreur à la ligne 111 de mabool.c. Soit la dernière ligne du script qui est un commentaire.
Image
Merci.


Haut
 Profil  
 
Gerald
 Sujet du message : Re: Un p'tit coup de main ?
Message Publié : 02 Oct 2015, 14:49 
Hors-ligne
Rulezzz
Rulezzz

Inscription : 20 Août 2013, 18:03
Message(s) : 258
zecreator a écrit :
Lone a écrit :
Salut,

Je galère à récupérer ton zip, mais ton problème ne semble pas lié à des pointers (pas directement en tout cas), mais plutôt a un cast.
Il est en effet normal de ne pas pouvoir utiliser tel quel un "const char" en "unisgned char" : Le const indique que ce char est en lecture seule, attribut qu'il perd lorsque l'on l'utilise comme un "unsigned char". Il faut donc, au minimum, le caster en "unsigned char" (en étant bien sûr de ce que l'on veut faire ! A priori, cette erreur n'est pas là par hasard !)

Sinon, ton erreur apparais à quelle ligne ?


La console m'indique une erreur à la ligne 111 de mabool.c. Soit la dernière ligne du script qui est un commentaire.
Image
Merci.
Tu utilise quelle version de SDCC ?
En compilant mabool.c (sdcc -mz80 -c mabool.c -o mabool.rel) les premières erreurs sont dans inc/misc/levels.h.
Tu y déclares un tableau de unsigned char a une dimension que tu initialises comme un tableau a deux dimensions.


Haut
 Profil  
 
zecreator
 Sujet du message : Re: Un p'tit coup de main ?
Message Publié : 02 Oct 2015, 15:17 
Hors-ligne

Inscription : 26 Déc 2012, 22:33
Message(s) : 5
Gerald a écrit :
zecreator a écrit :
Lone a écrit :
Salut,

Je galère à récupérer ton zip, mais ton problème ne semble pas lié à des pointers (pas directement en tout cas), mais plutôt a un cast.
Il est en effet normal de ne pas pouvoir utiliser tel quel un "const char" en "unisgned char" : Le const indique que ce char est en lecture seule, attribut qu'il perd lorsque l'on l'utilise comme un "unsigned char". Il faut donc, au minimum, le caster en "unsigned char" (en étant bien sûr de ce que l'on veut faire ! A priori, cette erreur n'est pas là par hasard !)

Sinon, ton erreur apparais à quelle ligne ?


La console m'indique une erreur à la ligne 111 de mabool.c. Soit la dernière ligne du script qui est un commentaire.
Image
Merci.
Tu utilise quelle version de SDCC ?
En compilant mabool.c (sdcc -mz80 -c mabool.c -o mabool.rel) les premières erreurs sont dans inc/misc/levels.h.
Tu y déclares un tableau de unsigned char a une dimension que tu initialises comme un tableau a deux dimensions.


Bonjour,

La version de SDCC utilisée ets la 3.1.0.


Haut
 Profil  
 
demoniakparadox
 Sujet du message : Re: Un p'tit coup de main ?
Message Publié : 02 Oct 2015, 16:13 
Hors-ligne
Rulezz
Rulezz

Inscription : 26 Août 2013, 11:55
Message(s) : 70
Pour ma part je pense que le problème vient des instructions LoadFile, déclarée comme ça :
Code :
int LoadFile(char* filename, char* readbuffer)
dans le fichier accessfile.h, et auquel tu passes un const char[] (global.h), qui est différent du char *

Le plus simple serait de définir Player, Music, Datas et Data2 en char * je pense, du style :
Code :
char * Player = "PLAYER.BIN";
char * Music = "MUSIC.BIN";
char * Datas = "DATA.BIN";
char * Data2 = "DATA2.BIN";


Haut
 Profil  
 
TotO
 Sujet du message : Re: Un p'tit coup de main ?
Message Publié : 03 Oct 2015, 09:23 
Hors-ligne
VIP
VIP

Inscription : 13 Jan 2010, 14:25
Message(s) : 2282
Dans global.h tu as :
Code :
const char Player[11] = {'P','L','A','Y','E','R','.','B','I','N',0};
const char Music[10] = {'M','U','S','I','C','.','B','I','N',0};
const char Datas[9] = {'D','A','T','A','.','B','I','N',0};
const char Data2[10] = {'D','A','T','A','2','.','B','I','N',0};

Tu peux aussi définir tes chaines de cette façon :
Code :
char Player[] = "PLAYER.BIN";
char Music[] = "MUSIC.BIN";
char Data[] = "DATA.BIN";
char Data2[] = "DATA2.BIN";

Ainsi, tu n'auras plus le soucis de type en passage de paramètre pour LoadFile().
Si tu veux absolument les déclarer en const, il faut soit modifier la fonction soit caster le type.
LoadFile((char*)filename, ...)

PS: Data ne prends pas de s, c'est déjà un pluriel... ;)

_________________
Cent Pour Cent


Haut
 Profil  
 
zecreator
 Sujet du message : Re: Un p'tit coup de main ?
Message Publié : 05 Oct 2015, 20:30 
Hors-ligne

Inscription : 26 Déc 2012, 22:33
Message(s) : 5
Merci pour vos réponses.

En corrigeant dans le fichier levels.h la ligne :

Code :
char unsigned levels[] = {


par

Code :
char unsigned * levels = {


ça compile. Bon, en faisant un RUN"MABOOL, ça reboot le CPC... Mais, c'est déjà un début...

Merci.

AJOUTER :
Voici un nouveau problème :
Image

J'ai mis à jour le fichier ZIP avec mes modifications de sources :
http://www.freetalent.fr/downloads/mabool.zip

Merci.


Haut
 Profil  
 
kdragin
 Sujet du message : Re: Un p'tit coup de main ?
Message Publié : 22 Déc 2015, 07:15 
Hors-ligne

Inscription : 07 Déc 2015, 04:35
Message(s) : 1
Merci pour la partage des informations.


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 9 message(s) ] 

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 36 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.